C++ 没有官方包管理和构建标准,工程化能力几乎等于构建系统的驾驭能力。

Make 的问题

手写依赖规则在项目变大后不可维护,跨平台编译更是噩梦。

CMake 的定位

CMake 是构建系统的生成器:描述式地声明目标与依赖,再生成各平台的实际构建脚本。现代 CMake 的 target 用法已经相当清爽。

更远

包管理方面,依赖拉取与构建正在走向一体化,新项目的上手成本比五年前低了一个量级。