cmake、ccmake、make、make install有何区别?C++源码编译流程咨询
Mac 端 ccmake 配置完成后的编译步骤
ccmake 运行完成并保存配置退出后,已经在当前构建目录生成了对应平台的原生构建文件,Mac 环境默认生成 Unix 系通用的 Makefile,后续按需求选择执行以下命令即可:
- 仅生成可执行程序:直接运行
make命令即可,工具会自动根据 Makefile 执行编译、链接逻辑,最终输出可执行文件。如果要加快编译速度,可以加线程参数,比如 8 线程编译就写make -j8。编译完成后直接在构建目录下就能找到生成的可执行程序,本地测试运行不需要执行后续命令。 - 安装编译产物到指定路径:执行
make install,会将可执行文件、依赖库、头文件等产物安装到你在 ccmake 中配置的CMAKE_INSTALL_PREFIX对应路径下,一般只有需要全局安装工具/库的时候才需要执行这一步。 - 打包安装包:执行
make package,仅当项目配置了 CPack 打包规则时生效,会将编译产物打包成对应格式的安装包(Mac 下常见为 dmg、pkg 格式),普通开发场景不需要使用。
如果想使用跨平台通用的编译命令,不用区分生成的是 Makefile 还是其他构建文件,可以统一执行cmake --build .,CMake 会自动调用对应平台的构建工具完成编译。
跨平台构建文件差异说明
CMake 本质是元构建系统,本身不负责编译代码,作用是根据指定的生成器输出对应平台原生构建工具可识别的配置文件:
- Windows 平台默认生成 Visual Studio 对应的
.sln解决方案文件,所以可以直接用 VS 打开编译 - Mac 平台默认生成 Makefile,如果你想生成 Xcode 可识别的项目文件,只需要在执行 cmake/ccmake 时指定生成器即可,命令为
cmake -G Xcode ..,运行完成后构建目录会生成.xcodeproj项目文件,直接用 Xcode 打开就能和 Windows 用 VS 一样操作编译。
入门学习可以直接参考 CMake 官方文档的入门模块,同时对照常见开源 C++ 项目的构建说明文档实操,很快就能掌握常用的编译配置逻辑。
内容的提问来源于stack exchange,提问作者RPM Research
相关产品推荐
相关产品推荐

