CMake 是最主流的 C/C++ 跨平台构建系统生成器。它不直接编译代码,而是生成底层构建系统(如 Makefile、Ninja、Visual Studio 项目)的配置文件。
CMake Presets
CMakePresets.json 允许预定义构建配置,避免每次手动传递参数。常见用法:
{
"version": 6,
"configurePresets": [
{
"name": "debug",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/debug",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
}
},
{
"name": "release",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/release",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
}
]
}使用:cmake --preset debug 然后 cmake --build --preset debug
调试 CMakeLists.txt
排查 CMake 配置问题的常用方法:
message(STATUS "var = ${MY_VAR}")— 打印变量值cmake --trace— 跟踪所有 CMake 命令执行cmake --trace-expand— 跟踪并展开变量cmake -LA— 列出所有缓存变量cmake --graphviz=deps.dot— 生成依赖关系图