构建工具:Make vs CMake对比

定位差异

维度 Make CMake
本质 通用构建工具(执行你写的规则) 构建系统生成器(生成 Makefile/VS工程/Ninja文件)
历史 1976,Unix 传统 2001,跨平台元构建工具
脚本语言 类 shell 的 make 规则 CMakeLists.txt(类 Lisp 宏)
跨平台 弱(依赖 GNU make、POSIX 工具链) 强(一次编写,生成 Linux/macOS/Windows 构建文件)
学习成本 低(但写复杂依赖很痛苦) 中等(语法简单但概念多:target、property、generator)

核心能力对比

能力 Make CMake
增量构建 手维护依赖(或用生成脚本) 自动处理 + 自动依赖扫描
依赖管理 手动/脚本解决(pkg-config) find_package() 找系统包,ExternalProject/FetchContent 拉外部源码
第三方库 自己写链接规则 find_library/Findxxx.cmake 模块,包配置(.pc、.cmake 文件)
多配置 不原生支持 Release/Debug 切换 原生