gpt4 book ai didi

cmake - 哪个CMake版本最低?

转载 作者:行者123 更新时间:2023-12-03 14:07:27 26 4
gpt4 key购买 nike

我想使用“cmake_minimum_required”功能为CMake定义最低版本。
我已经看到一些项目将最低版本设置为2.8,而另一些项目将版本设置为3.0或3.2。
我想了解您关于此主题的意见和最佳做法。

最佳答案

cmake_minimum_required()函数用于避免由于CMakeLists.txt假定CMake版本比当前主机上安装的CMake版本高而导致的任何错误消息。

例如,早期失败并带有明确的信息...

CMake 3.2 or higher is required. You are running version 2.8.12.2

...在以后会比其他更神秘的事物更受青睐...
In file included from /home/foouser/src/testprj/string.cpp:1:0:
/home/foouser/src/testprj/string.hpp:94:29: error: ‘std::is_same’ has not been declared

...只是因为在此示例中,较早的CMake版本不支持 set( CMAKE_CXX_STANDARD 11 )。我相信你会同意的。

理想的设置是:
  • 具有脚本所需的所有功能的最旧版本。

  • 与运行较旧版本的人员以及您的脚本具有最大的兼容性。但是,它需要测试首先支持您的构造的确切版本。因此,通常归结为:
  • 您测试过的最旧版本,具有脚本需要的所有功能。

  • 对于大多数项目而言,这可能已经足够了。而且,如果您是唯一真正从事该项目的人,并且列表中的CMake兼容性测试确实很少,那么您可能最终会得到:
  • 当前使用的版本。

  • 一旦其他人尝试编译您的项目,则后一种方法就有一个严重的缺点。很少有人没有使用所有内容的最新版本。特别是在Linux上,默认设置是使用程序包管理器提供的任何功能。例如,Ubuntu wily当前的版本为3.2.2-您可能拥有更高的版本,但是除非您需要更高的版本,否则您就不需要它(因为这意味着人们将无法构建您的项目无需先手动安装较新版本的CMake)。

    您应该 而不是要做的是...
  • 需要一个非常旧的版本,但实际上并未针对该旧版本进行测试( NO!)。

  • 原因应该很明显-构建可能会失败,而用户不会得到任何提示以指示出问题的原因。

    关于cmake - 哪个CMake版本最低?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35550116/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com