CMake标志卡住了
Posted
技术标签:
【中文标题】CMake标志卡住了【英文标题】:CMake flag getting stuck 【发布时间】:2014-03-24 06:18:43 【问题描述】:在给出 cmake 命令时,我使用标志“-DWITH_DAY=1
”选项作为标志。
该标志在代码中可用,并且工作正常。
但是当我想使用相同的代码构建其他库但没有这个标志时,我需要删除这个标志的定义,因为在我的代码中我有类似的语句
“if(NOT DEFINED WITH_DAY)
”
但是当我在没有这个标志的情况下进行 cmake 时,WITH_DAY
仍然保持定义!因此我的构建失败了。
仅当我删除 CMakeCache.txt
文件或整个构建目录时它才有效。
如果我没有在命令行中指定它,我想要被禁用。
【问题讨论】:
为什么不使用可以通过 ccmake 管理的 BOOL 变量? 【参考方案1】:您应该在构建其他库之前运行cmake -U WITH_DAY .
。这是因为 CMake 将 WITH_DAY
的值保存在缓存中 (CMakeCache.txt
)。
或者,正如@Caduchon 所提到的,您可以将WITH_DAY
设为option 并将您的if 语句更改为just
if(WITH_DAY)
【讨论】:
以上是关于CMake标志卡住了的主要内容,如果未能解决你的问题,请参考以下文章
cmake - 全局链接器标志设置(适用于目录中的所有目标)