CMake 系列导读:从第一个可执行文件到工程化构建的完整路径

这个系列把 CMake 的核心用法整理成了一条由浅入深的完整路径:从把单个源文件编译成可执行文件的第一步开始,经过构建类型与编译器选项的精细控制,进入操作系统与外部库的环境检测,再到函数、宏、模块化的工程化组织,最后以动态库链接和 GDB 调试两个高频实战场景收尾。全系列 22 篇,按发文时间顺序读即是推荐阅读顺序。

CMake 本身不是编译器,而是一个构建系统生成器:它读取 CMakeLists.txt 里的描述,为 Unix Makefile、Ninja、Visual Studio 等底层构建系统生成指令。理解了这一定位,系列里反复出现的「配置(configure)→ 生成(generate)→ 构建(build)」三段式流程就顺理成章了。

第一阶段:构建入门(一~八)

从零开始跑通一个完整项目,掌握日常使用频率最高的一批命令:

第二阶段:检测环境(九~十一)

CMake 跨平台,但源代码未必可移植——这三篇解决「同一份代码如何适配不同平台与编译器」:

第三阶段:外部库与测试(十二~十六)

真实项目总要依赖第三方库、总要写测试,这一阶段把两件事都规范化:

第四阶段:工程化组织(十七~二十)

项目变大之后的可维护性课题——用函数、模块与作用域消灭全局变量:

第五阶段:实战技巧(二十一~二十二)

两个开发中天天遇到的高频场景:

怎么读这个系列

  • 没用过 CMake:按顺序通读第一阶段,八篇读完就能独立维护日常项目;后面按需选读
  • 会基本用法:直接跳第三、四阶段(外部库检测与工程化组织),这是中型项目最常见的痛点
  • 急着解决具体问题:把系列当手册用——链接报错看第二十一篇,想让 IDE/gdb 有符号看第六、七篇,变量作用域诡异看第十九篇

   转载规则


《CMake 系列导读:从第一个可执行文件到工程化构建的完整路径》 由 吴杭沉 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
CMake 系列(一):编译第一个可执行文件 CMake 系列(一):编译第一个可执行文件
本篇将演示如何用 CMake 配置并构建一个最简单的项目:整个项目只有一个源文件,最终生成一个可执行文件。我们以 C++ 为例进行讨论。 提示:本示例在 CMake 3.5 或更高版本中有效,并已在 GNU/Linux、macOS 和 W
2022-03-15
下一篇 
Boost string_algo:split() 字符串切分 Boost string_algo:split() 字符串切分
使用 boost::split() 之前,需要先引用头文件 <boost/algorithm/string.hpp>。 boost::split() 函数用于切割 string 字符串,将切割之后的字符串放到一个 std::ve
2022-03-08
  目录