素材阁

CMake 速查

共 25 条 CMake 常用命令与构建流程,涵盖基本结构、目标与依赖、变量与条件、构建流程、依赖与安装。 支持搜索与分类筛选,点击即可复制。

基本结构

CMakeLists.txt 是构建脚本。

命令说明
指定最低 CMake 版本(写在最前)
声明项目与语言
可执行目标
静态库(SHARED 为动态库)
设置 C++ 标准

目标与依赖

现代 CMake 以 target 为中心。

命令说明
链接库(PRIVATE/PUBLIC/INTERFACE)
头文件搜索路径
编译选项
编译宏定义
包含子目录的 CMakeLists

变量与条件

配置逻辑。

命令说明
定义变量(引用用 ${MY_VAR})
布尔开关(-DBUILD_TESTS=ON)
条件判断
输出信息
列表操作

构建流程

out-of-source 构建。

命令说明
配置(在 build 目录生成构建文件)
并行构建
指定构建类型
安装(需 install 规则)
运行测试

依赖与安装

外部依赖查找。

命令说明
查找系统依赖
链接标准库组件
构建时拉取依赖
定义安装规则
生成配置头文件

使用说明

CMake 速查:基本结构、目标与依赖、变量与条件、构建流程、依赖与安装;支持搜索与分类筛选,点击即可复制。

  1. 按用途点分类:基本结构、目标与依赖、变量与条件、构建流程、依赖与安装。
  2. 点「命令」列复制到 CMakeLists.txt 或终端。
  3. 采用 out-of-source 构建:cmake -S . -B build 再 cmake --build build。
  4. 现代写法以 target_* 为中心,尽量不用全局的 include_directories。

常见问题

PRIVATE / PUBLIC / INTERFACE 有什么区别?
PRIVATE 只用于本目标、PUBLIC 传递给自己和使用者、INTERFACE 只传给使用者。用错会导致头文件或链接找不到。
为什么要 out-of-source 构建?
把生成的中间文件放到独立 build 目录,源码目录保持干净、便于切换构建类型与清理。
需要联网吗?
速查内容本地可用;拉取依赖需联网。

延伸阅读

相关工具