我为什么建议不要用CMake

作者:朱金灿
来源:clever101的专栏

CMake的优点

  CMake在开源代码中最常见的应用场景之一是生成很多平台的makefile或者project文件,这种统一管理的方式确实有其方便之处。尽管CMake有一些优点,我依然不建议使用CMake。下面我要谈谈CMake的一些缺点。

CMake的缺点

CMake不支持相对路径

  这个是CMake的最大缺点之一。很多时候你通过CMake生成了一个project文件,换一下磁盘路径它就不能用了,还得重新生成project文件。

CMake的包含头文件和库文件设置不能重用

  因为CMake不支持相对路径,从而导致CMake生成的project文件并不能重用其他人设置好的包含头文件和库文件的设置。如果采用CMake,一个新人接手一个新项目,估计至少花半天来完成这些设置,期间可能他还要咨询其它同事。

CMake的版本兼容性很不好

  CMake 工具版本太旧的话,可能 CMakeLists.txt 使用了新的语法,就会不兼容;CMake 工具版本太新的话,也会出现不兼容问题,因为 CMake 新版本在更新时不一定向后兼容。

CMake对持续构建支持不好

  我搜过一些jenkins+cmake持续构建C++项目的文章,感觉都是玩具性质的作为,就是说按照这些文章的做法,不用任何第三方库的C++项目可以这么搞。问题是现实中稍微有点规模的C++项目,哪个不需要第三方库呢?要用到第三方库,就必然涉及到包含头文件和库文件的设置,而这个就是CMake的弱项。

更好的做法是什么

  如果不用CMake,那么更好的做法是什么?我推荐的做法是:Windows上直接使用VisualStudio的工程文件,Linux下使用QtCreator或codeblocks的工程文件或makefile,mac平台使用xcodeproject。工程文件都纳入版本控制。这样新手直接下载下来就能用,就能迅速进入项目开发状态了。这样做的缺点可能是需要维护多个平台的工程文件,但我个人认为这些工作量并不大,比如VisualStudio的工程文件和QtCreator的工程文件就能互转,这样只需要把一个维护好就行。

猜你喜欢

转载自blog.csdn.net/clever101/article/details/127605048