以下两者有什么区别吗?
set(FOO true CACHE BOOL "description")
option(FOO "description" ON)
背景:即使我已经使用 CMake 一段时间了,我今天也只注意到 option
命令,因此我一直在使用 set
:我想知道是否用第二个替换第一个是安全/值得的。
最佳答案
在您的示例中,没有区别。但可能存在差异:
选项
的默认值为OFF
。- 您可以使用
CMakeDependentOption
使选项依赖于其他选项 set
接受BOOL
以外的类型,尤其是 ;-lists .
此外,当您使用某个选项时,您是在向用户表明可以安全地设置该选项。从外部设置内部变量可能会巧妙地用无效值破坏脚本。
关于cmake - CMake 变量的 "option"和 "set CACHE BOOL"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36358217/