代码变成可执行文件,叫做编译(compile);先编译哪一个,将编译的顺序安排好,叫做构建(build)。传送门
一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
CMake(cross platform make)是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
Hunger:CMake根据CMakeLists生成Makefile,写CMakeLists这个过程就是Build吧?
Make工具:当一个模块被修改后,保证其他模块与之相关的部分也随之改变,进而不会影响模块之间的协调关系。Make本身是一个单独工作的程序,可以根据程序模块的修改情况重新编译链接目标代码,以保证目标代码总是由它的最新模块组成。
Hunger:Make就是一个编译工具咯,完成编译和链接的工作。
报错:" ... cl.exe" is not able to compile a simple test program.
解决方法:将 ..\Microsoft Visual Studio 10.0\VC\bin里的cvtres.exe删除。