第一次运行时:cmake .. \ test2 -DABC = abc 我有输出:ABC = abc 没关系,但是当我第二次运行时:cmake .. \ test2没有附加参数,我仍然有ABC = abc。我没有删除任何输出文件。 如果下一次运行时提供了参数,则可以强制cmake使用参数的默认值(OFF)吗?
if(ABC)
message(STATUS "abc is set")
else()
message(STATUS "abc is not set")
endif()
不起作用
CMakeList.txt:
option(ABC "test" )
message(STATUS "ABC=${ABC}")
答案 0 :(得分:1)
是否可以强制CMake使用参数的默认值(OFF)?
是的,只需设置缓存变量,可以使用-U
选项完成
cmake ..\test2 -UABC
因此option()
发现未设置的变量,并为其分配了默认值
在CMake中,不使用-D
的意思是“不要更改变量”,而不是“根本不设置变量”。