文章目录
- 核心心智模型:CMake 是一个两步过程
- 一、配置阶段:`cmake -B ...`
- 1.1 `cmake <源码路径>` (最基础的配置)
- 1.2 `-B <构建目录>` (指定构建目录,推荐)
- 1.3 `-S <源码目录>` (显式指定源码目录)
- 1.4 `-G <生成器名称>` (指定生成器,至关重要)
- 1.5 `-D <变量名>=<值>` (设置缓存变量)
- 1.6 其他有用的配置选项
- 二、构建阶段:`cmake --build ...`
- 2.1 `cmake --build <构建目录>` (核心构建命令)
- 2.2 `--target <目标名>` (构建指定目标)
- 2.3 `--parallel <N>` 或 `-j <N>` (并行编译,加速构建)
- 2.4 `--config <配置类型>` (多配置生成器专用,如 VS, Xcode)
- 三、安装与打包阶段
- 3.1 `cmake --install <构建目录>` (安装)
- 3.2 `--strip` (安装时剥离符号表)
- 四、实用工具命令
- 4.1 `cmake -E <子命令>` (跨平台文件/系统操作)
- 4.2 `cmake --help` (获取帮助)
- 五、实战进阶:优化你的 PID 项目 CMakeLists.txt
- 总结:从0到1的完整路径
零开始,系统性地、全面地讲解 CMake 的命令行接口。理解 CMake 的命令行是掌握现代 C/C++ 开发的关键一步。
我们常说的“CMake命令”其实分两个层面:
- CMake 可执行程序本身的命令行选项(如
cmake -B,cmake --build),用于配置、构建、安装。 - CMakeLists.txt 中的脚本命令(如
add_executable,target_link_libraries),用于描述构建逻辑。
本回答将专注于第一层面,即你在终端中直接使用的cmake命令,并结合之前的PID项目给出详实实例。
核心心智模型:CMake 是一个两步过程
在深入命令之前,先建立这个至关重要的心智模型。CMake 的工作分为两步:
- 配置(Configure):
cmake -B build。读取CMakeLists.txt,检测编译器、库、依赖,并生成一个原生的构建系统(如 MinGW 的 Makefile、Visual Studio 的.sln文件、Ninja 的build.ninja)。 - 构建(Build)<