我已经搜索了makefile和CMakeLists之间的主要区别,但发现了微弱的差异,例如CMake自动化依赖性解析,而Make是手动的。
我正在寻求重大差异,我迁移到CMake的优点和缺点是什么?
答案 0 :(得分:11)
您可以将CMake与Autotools进行比较。它更有意义!如果您这样做,那么您可以找出制作Autotools的原因以及CMake优于制作的明显优势的缺点。
Autoconf解决了一个重要问题 - 可靠地发现系统特定的构建和运行时信息 - 但这只是便携式软件开发的难题之一。为此,GNU项目开发了一套集成实用程序来完成Autoconf的工作:GNU构建系统,其最重要的组件是Autoconf,Automake和Libtool。
Make不能那样做。无论如何都没有开箱即用。你可以做到这一点但是需要花费大量时间跨平台维护它。
CMake解决了同样的问题(以及更多),但与GNU Build System相比有一些优势。
将CMake与make进行比较时,使用CMake还有几个优点:
与make相比,整体CMake显然是一个选择,但你应该注意一些事情。