CMake命令简要介绍
CMake是一个跨平台的自动化构建系统,用于管理软件编译过程。它通过声明式的配置文件(CMakeLists.txt)生成标准构建文件(如Makefile、Visual Studio项目等),支持多平台编译环境统一管理。

核心特点
- 跨平台性:支持Windows/Linux/macOS
- 多生成器支持:可生成Ninja、Makefile、Xcode等构建脚本
- 模块化设计:通过
find_package集成第三方库 - 依赖管理:自动检测头文件/库路径
命令行参数详解
| 参数 | 作用 | 示例 |
|---|---|---|
-S <path> | 指定源码目录 | cmake -S src -B build |
-B <path> | 指定构建目录 | cmake -B build |
-D <var>=<value> | 设置变量值 | cmake -DCMAKE_BUILD_TYPE=Debug |
-G <generator> | 指定生成器(如Unix Makefiles, Visual Studio 17 2022) | cmake -G "Ninja" |
--build <dir> | 执行编译 | cmake --build build |
--target <target> | 指定编译目标 | cmake --build build --target install |
-P <script> | 执行CMake脚本 | cmake -P configure.cmake |
即用型示例
1. 基础项目构建
目录结构:
project/
├── CMakeLists.txt
└── main.cpp
CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(MyApp)
add_executable(myapp main.cpp)
命令行:
# 创建构建目录
mkdir build
cd build
# 生成构建系统 (Unix)
cmake -G "Unix Makefiles" ..
# 编译
cmake --build .
2. 多平台构建配置
# Windows (VS2022)
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
# Linux/Mac
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
快速参考表
| 场景 | 命令 |
|---|---|
| 配置阶段 | |
| 基础配置 | cmake -S . -B build |
| 指定生成器 | cmake -G "Ninja" -S src -B build |
| 设置编译类型 | cmake -DCMAKE_BUILD_TYPE=Debug -B build |
| 构建阶段 | |
| 编译所有目标 | cmake --build build |
| 指定编译目标 | cmake --build build --target install |
| 并行编译 | cmake --build build -j 8 |
| 缓存管理 | |
| 查看缓存变量 | cmake -N -L build |
| 修改缓存变量 | cmake -DCMAKE_CXX_FLAGS="-O3" -B build |
最佳实践提示
- 构建目录隔离:始终在独立目录构建(
build/),避免污染源码 - 版本约束:在
CMakeLists.txt首行声明最低版本要求 - 生成器选择:
- Windows:
Visual Studio ...或Ninja - Linux/macOS:
Unix Makefiles或Ninja
- Windows:
- 变量传递:使用
-D参数覆盖缓存变量,如:cmake -B build -DCMAKE_INSTALL_PREFIX=/opt/myapp
注:所有命令示例均经过实际环境验证,可直接复制使用。Windows环境需根据Visual Studio版本调整
-G参数值。
1026

被折叠的 条评论
为什么被折叠?



