6

我决定研究 cmake,但在阅读了它之后,我的第一个想法是:如果我必须编写一个 cmake 配置文件,我为什么不只编写一个 makefile?

动机:我正在考虑用 Qt Creator 替换 Eclipse 作为我的 C/C++ 编辑器,其中包括 cmake 作为默认的 makefile 生成器。

4

1 回答 1

11

CMake 的主要优点是它是跨平台的(在一般意义上的操作系统和构建系统)。单个CMake 配置文件可以为 make (Makefiles)、Visual Studio (Visual Studio soultions & projects)、ninja、NMake、Code::Blocks、Eclipse、KDEdevelop 等生成原生构建系统……并为此生成原生构建系统工具,以便使用构建系统的开发人员按照他们习惯的方式工作。

即使对于单平台项目,CMake 也提供更高级别的机制,如外部库检测和配置(即自动设置定义、包含目录和链接文件以使用 3rd 方库)、支持生成安装(和打包)、与 CTest 测试实用程序等集成。

CMake 还抽象了一些编译器细节,例如“传递哪些标志来创建共享库”或“如何启用 PIC 或过程间优化”。因此,您可以为 gcc、Clang 或 Sun CC 编译器生成一个 makefile,而不必关心它们的接口细节。

于 2013-10-30T15:06:49.210 回答