c++ - CMake 错过 Qt5 的 QT_DEFINITIONS 变量

标签 c++ qt cmake

CMake 有 Qt4 的特殊变量 ${QT_DEFINITIONS},其中包含 QT 定义,例如 QT_NO_DEBUG 和 QT_DEBUG。 Qt5 没有这样的选项。

如何在 cmake 中添加标准 Qt5 定义?

最佳答案

请查看<component>_DEFINITIONS/<component>_COMPILE_DEFINITIONS .

有一个使用 Qt Widgets 和 CMake 的例子 here .两个重要部分:

# Find the QtWidgets library
find_package(Qt5Widgets)

# Add the include directories for the Qt 5 Widgets module to
# the compile lines.
include_directories(${Qt5Widgets_INCLUDE_DIRS})

调用 find_package()将为您设置这些变量:

  • Qt5Widgets_VERSION_STRING
  • Qt5Widgets_LIBRARIES target_link_libraries 一起使用的库列表命令,例如。
  • Qt5Widgets_INCLUDE_DIRS include_directories 一起使用的库列表命令,例如。
  • Qt5Widgets_DEFINITIONS 用于 add_definitions 的定义列表,例如。
  • Qt5Widgets_COMPILE_DEFINITIONS 用于 COMPILE_DEFINITIONS 的定义列表目标属性(property)。
  • Qt5Widgets_FOUND 描述是否成功找到模块的 bool 值。
  • Qt5Widgets_EXECUTABLE_COMPILE_FLAGS 构建可执行文件时要使用的标志字符串。

(引自上面的链接;名称取决于您在 find_package() 电话中搜索的内容)

关于c++ - CMake 错过 Qt5 的 QT_DEFINITIONS 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20371723/

相关文章:

c++ - 使递归在 C++ 中更高效

c++ - 将文本字段中的值存储在 .txt 中

c++ - QOpenGLWidget 不在整个小部件中呈现

c++ - QWidget删除问题

c++ - 路径的 CMake 命令相等

build - 对 `gcry_check_version' 的 undefined reference ,怎么了?

c++ - 字符串作为 C++ 中宏的参数

c++ - #pragma pack 在 C++ 中

qt - 为 FileDialog 设置默认起始目录

c++ - 如何包含 VS 2008 的 Boost 库(命令行)