什么会导致 CMake 选项不起作用?

kat*_*ang 2 qt cmake option

我正在准备一个可以使用和不使用 GUI 的应用程序,所以我在我的 CMakeLists.txt 中使用命令

option (NEED_GUI "Include Qt support"  OFF) 
Run Code Online (Sandbox Code Playgroud)

if (NEED_GUI)
  message("****GUI should be OFF****")
  add_subdirectory(QtGUI)   # The Qt-based graphics routines
endif (NEED_GUI)
Run Code Online (Sandbox Code Playgroud)

尽管我将选项设置为 OFF,但我还是收到了消息并构建了库。在哪里查找错误?

Flo*_*ian 8

把我的评论变成答案

你的代码看起来不错。所以我假设这里的问题是在初始配置步骤中option()将给定的值转移到您CMakeCache.txt的。之后,您只能通过修改 的缓存条目来更改它NEED_GUI。在CMakeLists.txt生成构建环境后更改选项将不再更新缓存。

参考