【问题标题】:What can cause a CMake option not work?什么会导致 CMake 选项不起作用?
【发布时间】:2016-06-15 03:41:48
【问题描述】:

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

option (NEED_GUI "Include Qt support"  OFF) 

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

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

【问题讨论】:

  • 选项是缓存变量,所以你给的只是一个初始值(更多细节见here)。
  • @Florian:您应该将其发布为答案。

标签: qt cmake option


【解决方案1】:

把我的评论变成答案

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

参考文献

【讨论】:

【解决方案2】:
if (NEED_GUI MATCHES ON)

是适当的用法而不是

if (NEED_GUI)

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 2019-11-15
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    相关资源
    最近更新 更多