有人会提出疑问,我们不是用Mingw-w64配置好gcc了吗,不就已经实现C++代码的正常运行了嘛?为什么还要cmake呢?其实不难发现,我们上次配置的gcc仅仅适用于运行单个源文件,但是面对大的项目,就会变得很棘手!
当然,你如果觉得这些配置比较复杂,你可以选择使用Visual Studio或者是更加专业的CLion
这是一个集成块发环境(IDE),所有的东西都不需要你手动去配置,你只需要把程序写好,点击三角形运行就可以了。
缺点:1.但是这是过于“傻瓜式”的东西,如果想对C或者编译 原理做 进一步的理解的话,还是希望大家 可以自己配置!
2.Visual Studio、CLion要钱 !
3.即使说你可以破解,但是Visual Studio的占用空间比较大,一般安装下载完需要3~4GB,会带来一定的卡顿
我们在这里做详细的介绍,以及cmake配置的步骤详解!
一、cmake
VSgcc
1.什么是gcc
?
gcc
是GNU Compiler Collection
(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C、C++、Objective-C、Fortran、Java等等)。
2.gcc
的缺陷
在上一篇博文中我们用gcc来编译C++,我们会发现每个可执行的.exe
都需要单独配置,也就是说:当你的程序只有一个源文件时,直接就可以用gcc命令编译它。
但是如果你的程序包含很多个源文件时,用gcc
命令逐个去编译时,你就很容易混乱而且工作量大
3.引入make
make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式——通过调用makefile
文件中用户指定的命令来进行编译和链接的。
4.什么是makefiles
?
一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile
定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile
就像一个Shell脚本一样,也可以执行操作系统的命令。
make
需要按照makefile
中的命令执行!
makefile
命令中就包含了调用许多编译器(如我们这里多用到的gcc编译器)去编译某个源文件的命令。
人总是“懒惰的”,makefile在一些简单的工程完全可以人工手写,但是当工程非常大的时候,手写makefile也是非常麻烦的,如果换了个平台makefile又要重新修改。因此我们引入了cmake
5.什么是cmake
呢?
CMake
这个名字是cross platform make
的缩写。虽然名字中含有“make”,但是CMake和Unix上常见的“make”系统是分开的,而且更为高阶。
CMake
可以更加简单的生成makefile文件给上面的make用。当然CMake
还可以跨平台生成对应平台能用的makefile,你不用再自己去修改了。