强曰为道
与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

CMake 从入门到精通:完整教程

CMake 从入门到精通:完整教程

构建系统是软件工程的骨架。 一套好的构建系统能让你的项目在不同平台、不同编译器下一致地编译、测试与部署。

教程简介

本教程共 18 章,从 CMake 的历史与设计理念出发,逐步深入到变量系统、目标管理、依赖管理、交叉编译、测试集成、Docker 构建、最佳实践等主题。每章包含:

  • 📖 核心概念:清晰讲解知识点
  • 💻 可运行代码示例:即学即用
  • 📊 对比表格:快速理解差异
  • ⚠️ 注意事项:避开常见陷阱
  • 🏢 业务场景:真实项目中的应用
  • 📚 扩展阅读:深入探索的方向

目录

章节 标题 关键词
第 1 章 CMake 简介与背景 历史、设计理念、Makefile 对比、适用场景
第 2 章 安装与环境配置 安装、版本管理、CMake GUI、IDE 集成
第 3 章 基础入门 CMakeLists.txt、project、add_executable、构建流程
第 4 章 变量系统 变量、缓存变量、环境变量、列表、作用域
第 5 章 目标与属性 目标、PUBLIC/PRIVATE/INTERFACE、ALIAS、导入目标
第 6 章 库的构建与使用 静态库、动态库、对象库、find_package、pkg-config
第 7 章 查找模块详解 Find 模块、Config 模式、版本约束、组件
第 8 章 命令与控制流 条件、循环、函数、宏、自定义命令、生成器表达式
第 9 章 工具链与交叉编译 工具链文件、交叉编译、编译器标志、平台检测
第 10 章 测试与 CTest CTest、标签、超时、覆盖率、内存检查
第 11 章 安装与打包 install 规则、组件、导出、CPack
第 12 章 CMake 预设 CMakePresets.json、配置预设、构建预设
第 13 章 高级特性 生成器表达式、自定义属性、目标依赖
第 14 章 模块系统 Utility 模块、自定义 Find 模块、可复用模块
第 15 章 依赖管理 FetchContent、ExternalProject、vcpkg、Conan
第 16 章 Docker 与 CI/CD Docker 构建、多阶段构建、CI 集成、缓存
第 17 章 问题排查 配置错误、链接错误、变量调试
第 18 章 最佳实践 现代 CMake、项目结构、性能优化、可维护性

适读人群

  • 初学者:从第 1 章开始,循序渐进
  • 有经验的开发者:可直接跳到感兴趣的章节
  • DevOps / CI 工程师:重点关注第 12、16 章
  • 架构师:重点关注第 5、13、18 章

环境要求

工具 最低版本 推荐版本
CMake 3.16 3.28+
编译器 GCC 7 / Clang 6 / MSVC 2019 GCC 13+ / Clang 17+ / MSVC 2022
操作系统 Linux / macOS / Windows 任意现代版本

开始学习:第 1 章 — CMake 简介与背景 →