gpt4 book ai didi

选项的 CMAKE 默认值不起作用

转载 作者:行者123 更新时间:2023-12-02 01:12:15 25 4
gpt4 key购买 nike

如果我有以下行。然后我希望 TEST_OPTION 默认设置为 ON

option( TEST_OPTION "A test option" ON)

当我测试它时,默认情况下它似乎不是 ON。为了测试,我正在编译一个简单的应用程序:
int main() {

#ifdef TEST_OPTION
#error "TEST_OPTION encountered"
#endif
return 0;
}

我还有一个简单的 CMakeLists.txt:
cmake_minimum_required(VERSION 2.6)
project(test)

add_executable(test main.cpp)

option( TEST_OPTION "A test option" ON)

if(TEST_OPTION)
target_compile_definitions(test PRIVATE TEST_OPTION)
endif(TEST_OPTION)

如果我尝试使用 $ cmake && cmake --build . 进行编译,我预计会遇到编译错误,但我不会!如果我用 option( TEST_OPTION ... ) 替换 set(TEST_OPTION ON) ,那么我会得到我预期的编译错误。

有人可以解释为什么 option() 默认情况下不将该选项设置为默认值吗?

最佳答案

解决方案:
当您更改选项的默认值时,cmake 缓存似乎不会刷新。因此,通过首先在选择“OFF”的情况下构建它,“ON”选项被完全忽略。为了解决这个问题,我只需要删除生成的 cmake 工件并再次运行 cmake

关于选项的 CMAKE 默认值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44719963/

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