CMake 是 C/C++ 生态事实标准的跨平台构建系统生成器,由 Kitware 公司于 2000 年发布。开发者用 CMakeLists.txt 描述项目,CMake 据此生成 Makefile、Ninja 或 Visual Studio 工程,实现一份配置多平台编译。

| 类型 | 构建系统生成器 |
| 开发方 | Kitware |
| 首次发布 | 2000 年 |
| 配置文件 | CMakeLists.txt |
| 许可证 | BSD |
CMake是一个开源的跨平台自动化构建系统生成器,主要服务于 C 和 C++ 项目。它本身不直接编译代码,而是读取名为 CMakeLists.txt 的配置文件,生成目标平台原生的构建文件(如 Unix Makefile、Ninja 文件或 Visual Studio 工程),再交由这些工具执行实际构建。
CMake 由美国 Kitware 公司在 2000 年发布,最初源于为医学影像项目 ITK 提供跨平台构建支持的需求,主要设计者包括 Bill Hoffman 等人。2006 年 KDE 桌面项目从 autotools 迁移到 CMake,极大推动了它的普及。如今 CMake 已是 C/C++ 世界事实上的标准构建工具,被 LLVM、Qt(部分)、OpenCV 等海量知名项目采用,主流 IDE 如 CLion、Visual Studio、VS Code 均原生支持。
CMake 适用于需要在 Windows、Linux、macOS 及嵌入式平台间移植的 C/C++ 项目,从小型库到操作系统级巨型工程均可胜任,也是开源 C++ 库对外分发时最通行的构建接口。
问:CMake 和 Make 是什么关系?答:Make 是执行构建的工具,CMake 是更高一层的生成器,可以生成供 Make 使用的 Makefile,也可以生成 Ninja 或 IDE 工程。
问:为什么很多人觉得 CMake 难学?答:其脚本语言历史包袱重、旧式写法与现代写法并存,网上教程质量参差;建议直接学习基于 target 的现代 CMake 风格。

| 类型 | 构建系统生成器 |
| 开发方 | Kitware |
| 首次发布 | 2000 年 |
| 配置文件 | CMakeLists.txt |
| 许可证 | BSD |
登录 后参与讨论
暂无讨论,来发表第一条评论吧