CMake标志卡住了

时间:2014-03-24 06:18:43

标签: c++ makefile cmake

在给出cmake命令时,我正在使用标记" -DWITH_DAY=1"选项作为标志。 这个标志在代码中可用,并且很好。 但是当我想使用相同的代码构建其他ibrary但没有这个标志时我需要擦除这个标志的定义,因为在我的代码中我有类似的语句 " if(NOT DEFINED WITH_DAY)" 但是当我在没有此标志的情况下执行cmake时,WITH_DAY仍然保持定义!因此我的构建失败了。 它仅在我删除CMakeCache.txt文件或整个构建目录时才有效。

如果我没有在命令行中指定它,我希望被禁用。

1 个答案:

答案 0 :(得分:1)

在构建其他库之前,您应该运行cmake -U WITH_DAY .。这是因为CMake将WITH_DAY的值保存在缓存中(CMakeCache.txt)。

或者,正如@Caduchon所提到的,您可以将WITH_DAY设为option并将您的if语句更改为

if(WITH_DAY)