各种make的定位和作用。
cmakelists.txt -->【cmake】=》 makefile或者各种工程文件
工程文件pro–>【qmake】=>makefile并建立一些文件夹(自称体系)
{
Makefile–>【make调用gcc,g+=】=》exe
工程文件vs–>【ide的编译、连接或者生成,VS 里面集成了类似 make 的 nmake】==>exe
}
网络盗图
cmake是一种跨平台的编译工具,比make更为高级,使用起来要方便的多。cmake主要是编写cmakelists.txt文件,然后用cmake命令将cmakelists.txt文件转化成make所需要的makefile文件,最后用make命令编译源码生成可执行程序或者共享库(so(shared object))。它的作用和qt的qmake是相似的。
可以如下图理解:
configure(配置编译环境)
cmake=qmake(生成makefile)
make(从makefile中读取指令,然后编译)
make install(从makefile中读取指令,安装程序)
那gcc/g++在这个过程中干了什么呢
我们知道编译和链接阶段是靠g++和gcc编辑器来完成,但是如果编译和链接的阶段如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这个文件就是makefile。