CMake 构建系统
cmake 用 CMakeLists.txt 生成 Makefile/Ninja 等构建文件,支持跨平台和多配置构建。推荐源码外构建(out-of-source)。
cmake -S . -B build
cmake -S . -B build -G Ninja
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr/local
cmake --build build -j 8
cmake --build build --target install
ctest --test-dir build --output-on-failure
cmake --install build
cmake --preset release
| 变量 | 含义 |
|---|---|
CMAKE_BUILD_TYPE |
Debug/Release/RelWithDebInfo |
CMAKE_INSTALL_PREFIX |
安装前缀 |
CMAKE_CXX_COMPILER |
编译器 |
CMAKE_TOOLCHAIN_FILE |
交叉编译工具链 |
BUILD_SHARED_LIBS |
默认构建动态库 |
CMAKE_EXPORT_COMPILE_COMMANDS |
生成 compile_commands.json |
CMakeLists.txt 后通常自动重新配置;缓存异常时删 build/CMakeCache.txt。find_package 失败先看 CMAKE_PREFIX_PATH 和依赖的 .cmake 文件。compile_commands.json 对 clangd/clang-tidy 很有用,建议开启。ninja / make — 执行构建ctest — 测试pkg-config — 依赖查询