我在cmake中将optionif-else语句一起使用时遇到问题。

project(test)

option(TESTE "isso é um teste" OFF)

if(TESTE)
  message("true")
else()
  message("false")
endif()

add_executable(test main.cpp)
即使我关闭了选项,它始终显示true,我在做什么错?

最佳答案

这是因为该选项的值存储在缓存(CMakeCache.txt)中。

如果您在CMakeLists中更改默认值,但实际值已存储在缓存中,它将仅从缓存中加载该值。

因此,要测试CMakeLists中的逻辑,请在每次重新运行CMake之前每次都删除高速缓存。

10-04 18:08