C++ 没有官方包管理和构建标准,工程化能力几乎等于构建系统的驾驭能力。
Make 的问题
手写依赖规则在项目变大后不可维护,跨平台编译更是噩梦。
CMake 的定位
CMake 是构建系统的生成器:描述式地声明目标与依赖,再生成各平台的实际构建脚本。现代 CMake 的 target 用法已经相当清爽。
更远
包管理方面,依赖拉取与构建正在走向一体化,新项目的上手成本比五年前低了一个量级。
为什么构建系统是 C++ 工程化的第一道坎?主流方案的定位与选型建议。
C++ 没有官方包管理和构建标准,工程化能力几乎等于构建系统的驾驭能力。
手写依赖规则在项目变大后不可维护,跨平台编译更是噩梦。
CMake 是构建系统的生成器:描述式地声明目标与依赖,再生成各平台的实际构建脚本。现代 CMake 的 target 用法已经相当清爽。
包管理方面,依赖拉取与构建正在走向一体化,新项目的上手成本比五年前低了一个量级。