CMake构建系统详解
📚 共计 30 章节
01
CMake入门
CMake是什么 · 为什么选择CMake · 核心思想与工作流程
概念
基础
02
环境搭建
安装 (Windows/Linux/macOS) · 验证安装 · Hello World
实操
入门
03
基础语法
CMakeLists.txt结构 · 注释 · 命令调用 · 变量 · 消息打印
语法
核心
04
变量与类型
字符串 · 列表 · 缓存 · 环境变量 · 作用域
变量
进阶
05
构建目标
add_executable · add_library · 目标属性 · 依赖关系
目标
构建
06
目录与源文件管理
aux_source_directory · file(GLOB) · 目录结构建议
组织
文件
07
头文件与路径
include_directories · target_include_directories · 路径传递
头文件
路径
08
链接库
target_link_libraries · 静态/动态库 · 链接顺序
链接
库
09
查找包
find_package · Config/Module模式 · 编写Find模块
包管理
查找
10
生成器表达式
Generator Expression · 条件编译 · 不同配置行为
表达式
高级
11
编译选项
CMAKE_CXX_FLAGS · target_compile_options · 编译特性
编译
选项
12
安装与打包
install命令 · CPack配置 · 生成安装包
部署
打包
13
测试
enable_testing · add_test · CTest基础 · 测试用例
测试
CTest
14
自定义命令与目标
add_custom_command · add_custom_target · 构建后操作
自定义
构建
15
函数与宏
function · macro · 参数传递 · 返回值模拟
函数
宏
16
模块化设计
大型项目拆分子目录 · add_subdirectory · 变量隔离
模块
架构
17
跨平台编译
平台检测 · 编译器检测 · 系统特性检测
跨平台
检测
18
工具链文件
Toolchain作用 · 交叉编译配置 · 常用参数
工具链
交叉编译
19
预设与缓存
CMakePresets.json · CMakeCache.txt · 预设继承与覆盖
预设
缓存
20
依赖管理
FetchContent · ExternalProject · vcpkg/Conan集成思路
依赖
集成
21
IDE集成
Visual Studio · Xcode · CodeBlocks · IDE友好设置
IDE
工程
22
调试CMake
message调试 · cmake --trace · --graphviz · 依赖图
调试
诊断
23
性能优化
减少配置时间 · 避免冗余扫描 · Ninja生成器
性能
Ninja
24
C++标准管理
CMAKE_CXX_STANDARD · 编译特性检查 · 标准版本控制
C++
标准
25
接口库与对象库
INTERFACE · OBJECT库类型 · 纯头文件库管理
接口库
对象库
26
别名目标
add_library(ALIAS) · 命名空间管理 · 避免冲突
别名
命名空间
27
导出与导入
export · install(EXPORT) · find_package消费自己的库
导出
导入
28
策略与兼容性
cmake_policy · 版本兼容 · 从旧版本迁移
策略
兼容
29
大型项目实战
多模块组织 · 第三方依赖管理 · CI/CD中的CMake
实战
CI/CD
30
CMake生态与未来
CMake社区 · 常用模块总结 · CMake 4.0展望
生态
未来