• 我为什么建议不要用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的工程文件就能互转,这样只需要把一个维护好就行。

  • 相关阅读:
    设计与人工智能的关系,人工智能和建筑设计
    Nacos配置文件更新+热更新+多环境配置共享+集群搭建
    深度学习——几种学习类型
    批量删除所有文件名称中的英文字母
    Lambda表达式
    SpringBoot项目Redis使用
    UBI文件系统的使用
    React - redux 使用(由浅入深)
    linux安装docker-compose
    机器学习3判断机器算法的性能
  • 原文地址:https://blog.csdn.net/clever101/article/details/127605048