我在cmake中将option
和if-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之前每次都删除高速缓存。