在给出cmake命令时,我正在使用标记" -DWITH_DAY=1
"选项作为标志。
这个标志在代码中可用,并且很好。
但是当我想使用相同的代码构建其他ibrary但没有这个标志时我需要擦除这个标志的定义,因为在我的代码中我有类似的语句
" if(NOT DEFINED WITH_DAY)
"
但是当我在没有此标志的情况下执行cmake时,WITH_DAY
仍然保持定义!因此我的构建失败了。
它仅在我删除CMakeCache.txt
文件或整个构建目录时才有效。
如果我没有在命令行中指定它,我希望被禁用。
答案 0 :(得分:1)
在构建其他库之前,您应该运行cmake -U WITH_DAY .
。这是因为CMake将WITH_DAY
的值保存在缓存中(CMakeCache.txt
)。
或者,正如@Caduchon所提到的,您可以将WITH_DAY
设为option并将您的if语句更改为
if(WITH_DAY)