文章目录
- 1. CMake和make
-
- 1.1 生成内容区别
- 1.2 CMakeLists.txt和Makefile内容比较
- 2. clang, gcc和make
-
- 2.1 基本概念
- 2.2 改进历史(gcc,make,cmake,Ninja)
1. CMake和make
1.1 生成内容区别
环境 | CMake生成 | 最终生成 |
---|---|---|
Windows | XXX.sln | Visual Studio(MSBuild)处理.sln 生成.exe 可执行二进制文件 |
linux/macOS | MakeFile | Make处理MakeFile 生成可执行二进制文件 |
- 如果在Windows上编译过OpenCV或者ITK这类型的库,那么CMake-GUI配置结束后会出现
[Open Project]
,会在Visual Studio中打开xxx.sln
的解决方案。(默认Visual Studio是用MSBuild构建.sln
文件的)- 更详细的过程可以看看:Windows下使用CMake进阶中一键型编译的部分。
- linux或者MacOS的话,CMake会生成Makefile,然后用make构建项目。
Cmake和make就是linux或者macOS下构建过程中所使用的两个阶段的不同工具。
Cmake用处更广泛,跨平台。
make仅限于linux或者macOS这类型的平台,不过Windows上也有类似于make的工具,叫nmake。