我为什么建议不要用CMake
Posted clever101
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我为什么建议不要用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的工程文件就能互转,这样只需要把一个维护好就行。
以上是关于我为什么建议不要用CMake的主要内容,如果未能解决你的问题,请参考以下文章
SDNU 1245.这题超难的,建议先做其他的,看都不要看(思维)