CMake命令行高效构建指南,VR大空间资料 03 —— VRGK使用体验和源码分析。
CMake命令行工具介绍
CMake是一个跨平台的自动化构建系统,用于管理软件编译过程。它通过CMakeLists.txt文件定义构建规则,支持生成多种构建系统(如Makefile、Ninja、Visual Studio等)。CMake命令行工具提供丰富的选项,用于配置、生成和构建项目。
基本命令结构
CMake命令行工具的基本结构如下:
cmake [options] <path-to-source>
cmake [options] <path-to-existing-build>
<path-to-source>是包含CMakeLists.txt的源代码目录,<path-to-existing-build>是已存在的构建目录。
常用选项
-B
指定构建目录路径,例如:
cmake -B build
-D :=
设置CMake变量,例如:
cmake -DCMAKE_BUILD_TYPE=Release
-G
指定生成器,例如:
cmake -G "Unix Makefiles"
--build
构建项目,例如:
cmake --build build --config Debug
--target
指定构建目标,例如:
cmake --build build --target install
配置选项
CMAKE_BUILD_TYPE
指定构建类型(Debug/Release/RelWithDebInfo/MinSizeRel),例如:
cmake -DCMAKE_BUILD_TYPE=Debug
CMAKE_INSTALL_PREFIX
设置安装路径,例如:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local
CMAKE_CXX_COMPILER
指定C++编译器,例如:
cmake -DCMAKE_CXX_COMPILER=g++-10
构建选项
--parallel []
并行构建,例如:
cmake --build build --parallel 4
--clean-first
构建前清理,例如:
cmake --build build --clean-first
--verbose
显示详细构建信息,例如:
cmake --build build --verbose
生成器选项
CMake支持多种生成器,常见的有:
- Unix Makefiles
- Ninja
- Visual Studio 16 2019
- Xcode
指定生成器示例:
cmake -G "Ninja"
缓存管理
-U <globbing_expr>
删除CMake缓存变量,例如:
cmake -U "MY_VAR*"
-N
查看模式,不运行配置和生成步骤,例如:
cmake -N
跨编译配置
指定工具链文件进行跨平台编译,例如:
cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake
环境变量
CMake会读取某些环境变量,例如:
export CMAKE_PREFIX_PATH=/opt/custom/libs
诊断选项
--debug-trycompile
调试try_compile调用,例如:
cmake --debug-trycompile
--trace-expand
跟踪并展开所有命令,例如:
cmake --trace-expand
示例工作流
创建构建目录并配置项目:
mkdir build && cd build
cmake ..
构建项目:
cmake --build .
安装项目:
cmake --build . --target install
清理构建:
cmake --build . --target clean
高级用法
CPack集成
生成打包配置:
cpack --config CPackConfig.cmake
CTest集成
运行测试:
ctest -C Debug -V
文件API
查询构建系统信息:
cmake -DCMAKE_EXPERIMENTAL_FILE_API_ON=1
CMake命令行工具的强大之处在于其灵活性和可扩展性,通过组合不同选项可以满足各种复杂构建需求。掌握这些命令能显著提高项目构建效率,特别是在大型跨平台项目中。
更多推荐

所有评论(0)