强曰为道

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

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 章测试与 CTestCTest、标签、超时、覆盖率、内存检查
第 11 章安装与打包install 规则、组件、导出、CPack
第 12 章CMake 预设CMakePresets.json、配置预设、构建预设
第 13 章高级特性生成器表达式、自定义属性、目标依赖
第 14 章模块系统Utility 模块、自定义 Find 模块、可复用模块
第 15 章依赖管理FetchContent、ExternalProject、vcpkg、Conan
第 16 章Docker 与 CI/CDDocker 构建、多阶段构建、CI 集成、缓存
第 17 章问题排查配置错误、链接错误、变量调试
第 18 章最佳实践现代 CMake、项目结构、性能优化、可维护性

适读人群

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

环境要求

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

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