我搜索了 makefile 和 CMakeLists 之间的主要区别,但发现了一些微弱的区别,例如 CMake 自动依赖解析而 Make 是手动的。
我正在寻求重大差异,我迁移到 CMake 有哪些优点和缺点?
您可以将 CMake 与Autotools进行比较。这更有意义!如果你这样做,那么你会发现 make 的缺点是创建 Autotools 的原因,以及 CMake 相对于 make 的明显优势。
Autoconf 解决了一个重要问题——可靠地发现特定于系统的构建和运行时信息——但这只是便携式软件开发难题的一部分。为此,GNU 项目开发了一套集成实用程序来完成 Autoconf 开始的工作:GNU 构建系统,其最重要的组件是 Autoconf、Automake 和 Libtool。
Make不能那样做。反正不是开箱即用。你可以让它做到这一点,但跨平台维护它需要很多时间。
CMake 解决了相同的问题(以及更多问题),但与 GNU 构建系统相比具有一些优势。
将 CMake 与 make 进行比较时,使用 CMake 有更多优点:
总体而言,与 make 相比,CMake 显然是首选,但您应该注意一些事项。