gpt4 book ai didi

cmake - CMake 变量的 "option"和 "set CACHE BOOL"有什么区别?

转载 作者:行者123 更新时间:2023-12-02 02:34:43 45 4
gpt4 key购买 nike

以下两者有什么区别吗?

set(FOO true CACHE BOOL "description")

option(FOO "description" ON)

文档:set -option

背景:即使我已经使用 CMake 一段时间了,我今天也只注意到 option 命令,因此我一直在使用 set:我想知道是否用第二个替换第一个是安全/值得的。

最佳答案

在您的示例中,没有区别。但可能存在差异:

  • 选项的默认值为OFF
  • 您可以使用 CMakeDependentOption 使选项依赖于其他选项
  • set 接受 BOOL 以外的类型,尤其是 ;-lists .

此外,当您使用某个选项时,您是在向用户表明可以安全地设置该选项。从外部设置内部变量可能会巧妙地用无效值破坏脚本。

关于cmake - CMake 变量的 "option"和 "set CACHE BOOL"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36358217/

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