CMake 命令行参数完全指南 (1)
参数说明约定
- 术语解释:对专业术语提供通俗解释
- 适用场景:参数的最佳使用时机
- 输入要求:需要用户提供哪些输入
- 示例:基于
build
目录的实际用例 - 初学者提示:针对新手的特别说明
cmake -
参数详解
1. -A <platform-name>
解释:指定目标平台名称(用于交叉编译)
术语说明:交叉编译指在一种操作系统上编译另一种操作系统的程序
输入要求:平台名称字符串(如 “Win32”、“ARM”)
适用场景:为不同操作系统或硬件平台编译程序
示例:
cmake -B build -A "Win32" # 为32位Windows系统编译
cmake -B build -A "ARM" # 为ARM架构设备编译
初学者提示:普通PC开发通常不需要此参数
[[扩展说明:-A 参数]]
**2. -B <build-directory>
**
解释:指定构建文件存放位置
术语说明:构建目录是存放编译中间文件的独立文件夹
输入要求:目录路径(相对或绝对)
适用场景:所有CMake项目初始化
示例:
cmake -B build # 创建build文件夹存放编译文件
初学者提示:必须掌握的核心参数,保持源码目录整洁
**3. --build <dir>
**
解释:执行实际编译操作
输入要求:已存在的构建目录路径
适用场景:生成可执行文件或库
示例:
cmake --build build # 编译项目
cmake --build build -j 4 # 使用4个CPU核心并行编译
初学者提示:编译前需先用 -B
生成构建系统
**4. -C <initial-cache-file>
**
解释:预加载缓存文件设置默认值
术语说明:缓存文件存储CMake配置参数
输入要求:CMake脚本文件路径(.cmake格式)
适用场景:项目标准化配置
示例:
cmake -B build -C default_settings.cmake
文件内容示例:
# default_settings.cmake
set(CMAKE_BUILD_TYPE Debug)
set(USE_OPENMP ON)
**5. --check-system-vars
**
解释:检查系统环境变量是否被使用
适用场景:调试环境配置问题
示例:
cmake -B build --check-system-vars
初学者提示:高级调试参数,新手可暂不关注
**6. -D <var>[=<value>]
**
解释:设置配置参数(最常用参数)
术语说明:变量是CMake存储配置信息的容器
输入要求:变量名和可选值(格式:VAR=VALUE
)
适用场景:控制功能开关、设置路径等
示例:
cmake -B build -DCMAKE_BUILD_TYPE=Release # 设置发布模式
cmake -B build -DUSE_OPENMP=ON # 启用OpenMP支持
初学者提示:必须掌握的核心参数,项目配置的基础
**7. --debug-output
**
解释:显示详细处理过程
适用场景:调试CMake脚本问题
示例:
cmake -B build --debug-output
输出示例:
...详细显示CMake执行的每一步...
**8. --debug-trycompile
**
解释:显示编译器测试的详细信息
术语说明:CMake会测试编译器功能以确定兼容性
适用场景:诊断编译器兼容性问题
示例:
cmake -B build --debug-trycompile
**9. -E
**
解释:调用CMake内置工具命令
支持的命令:通过 cmake -E help
查看完整列表
适用场景:文件操作等通用任务
示例:
cmake -E make_directory new_folder # 创建目录
cmake -E copy file.txt file_copy.txt # 复制文件
cmake -E compare_files file1.txt file2.txt # 比较文件
**10. --find-package
**
解释:模拟包查找过程
输入要求:需配合 -D
参数指定查找参数
适用场景:调试第三方库查找问题
示例:
cmake --find-package -DNAME=OpenMP -DCOMPILER_ID=GNU
https://github.com/0voice