CMake 变量参考
Qt 构建变量
在构建 Qt 时,您可以使用 CMake 变量来控制构建结果。
| 变量 | 描述 |
|---|---|
| QT_HOST_PATH | 主机 Qt 安装的位置,在其他 Qt 构建(无论是常规构建还是交叉编译)过程中,可从此处使用主机工具。 |
QT_FORCE_BUILD_TOOLS | 强制使用构建工具,即使已找到主机工具。在对 Qt 进行交叉编译时,此变量可确保 SDK 包含交叉构建的工具。 |
QT_FORCE_FIND_TOOLS | 在不进行交叉编译时,使用QT_HOST_PATH 中预编译的Qt中的Qt工具。该变量仅在QT_FORCE_BUILD_TOOLS 设置为ON 时才生效。否则,QT_FORCE_FIND_TOOLS 不会影响默认行为。 |
模块变量
通过find_package 加载的 Qt 模块会设置各种变量。
注意:您 很少需要直接访问这些变量。诸如与模块链接之类的常见任务,应通过每个模块定义的库目标来完成。
例如,当find_package(Qt6 COMPONENTS Widgets) 成功执行后,将提供以下变量:
| 变量 | 描述 |
|---|---|
Qt6Widgets_COMPILE_DEFINITIONS | 构建时针对该库使用的编译定义列表。 |
Qt6Widgets_DEFINITIONS | 构建库时使用的定义列表。 |
Qt6Widgets_EXECUTABLE_COMPILE_FLAGS | 基于该库构建可执行文件时要使用的标志字符串。 |
Qt6Widgets_FOUND | 一个布尔值,用于描述是否成功找到了该模块。 |
Qt6Widgets_INCLUDE_DIRS | 基于该库进行构建时要使用的包含目录列表。 |
Qt6Widgets_LIBRARIES | 该模块的导入目标名称:Qt6::Widgets |
Qt6Widgets_PRIVATE_INCLUDE_DIRS | 基于该库进行构建并使用私有 Qt API 时需使用的私有包含目录列表。 |
Qt6Widgets_VERSION | 包含模块版本号的字符串。 |
对于通过 `find_package` 找到的所有软件包,均可使用这些变量的等效项;它们区分大小写。
安装变量
此外,还有一些变量与特定软件包无关,而是与 Qt 安装本身相关。
| 变量 | 描述 |
|---|---|
| 一个整数,用于控制在 Qt 5 和 Qt 6 项目混合使用的情况下,qt_ 命令转发的 Qt 版本。在调用相应的find_package() 之前,必须将其设置为5 或6 。如果设置为 若未进行设置,则首次调用的 |
QT_LIBINFIX | 当 Qt 配置为使用-libinfix 时,该字符串用于存储库名称中使用的后缀。 |
| 隐藏以qt_ 开头的命令,仅保留以qt6_ 开头的带版本号的命令。 |
| 隐藏以Qt:: 开头的导入目标。取而代之,您需要使用以Qt6:: 开头的目标。 |
QT_VISIBILITY_AVAILABLE | 在 Unix 系统上,一个布尔值,用于描述 Qt 库和插件是否使用-fvisibility=hidden 编译。这意味着仅导出选定的符号。 |
项目变量
这些变量会影响 Qt 提供的 CMake 命令。它们可由项目、工具链文件或其他第三方软件包进行设置。
Qt6::Core
主机系统的 Android 特定架构 | |
Android SDK 的位置 | |
项目包所针对的 ABI 列表 | |
要传递给 Android 应用程序的参数列表 | |
启用使用自动检测到的 Qt for Android SDK 列表构建多 ABI 包 | |
仅在 Gradle 项目目录下为依赖项创建符号链接 | |
强制启用或禁用发布包签名,无论构建类型如何 | |
启用基于 QtQuickViewContent 的类生成 | |
从多模块 Gradle 项目构建 Android 包 | |
允许在多ABI构建中共享CMake变量 | |
在 Android 包生成后执行 Gradle 清理 | |
使用指定的密钥库、别名和存储密码对 .aab 包进行签名 | |
使用指定的密钥库、别名和存储密码对包进行签名 | |
用于在某些目标平台上部署运行时二进制文件的、以前缀为基准的子目录 | |
从运行时依赖项搜索中排除的目录 | |
用于在某些目标平台上部署程序可执行文件的前缀相对子目录 | |
用于在某些目标平台上部署库的前缀相对子目录 | |
用于在某些目标平台上部署 Qt 插件的前缀相对子目录 | |
部署的基目录 | |
在某些目标平台上部署 QML 插件时,相对于前缀的子目录 | |
用于设置部署支持的文件名称 | |
在某些目标平台上部署 Qt 翻译时的前缀相对子目录 | |
启用部署工具的详细模式 | |
交叉编译时主机 Qt 安装的位置 | |
指定可翻译字符串的语言 | |
项目国际化所用的语言列表 | |
所有目标均使用的 iOS 启动屏幕故事板路径 | |
在 Android 部署过程中防止收集项目构建的共享库目标 | |
在 Android 部署过程中防止收集导入的目标 | |
在 iOS 上进行目标最终确定时,禁用提供备用应用包 ID | |
在 iOS 上对目标进行最终确定时,禁用提供备用团队 ID | |
防止后续对 qt_standard_project_setup() 的调用进行任何更改 | |
用于指定对应 ABI 的 Qt for Android 路径的一组变量 | |
启用按目标划分的 Android 构建目录 |
Qt6::InterfaceFramework
为所有 ifcodegen 函数启用详细日志记录 | |
ifcodegen 模板的搜索路径 |
Qt6::Multimedia
禁用 iOS 上的 FFmpeg 代码签名 |
Qt6::Qml
启用在 lint 目标中转储上下文属性 | |
控制是否启用 QML 编译器的统计信息收集 | |
启用为以下内容自动生成 .qmlls.ini 文件QML Language Server | |
自定义 .qmlls.ini 文件中 no-cmake-calls 的值,用于QML Language Server | |
禁用将 QML 文件编译为字节码或 C++ 代码的功能 | |
控制是否为链接 Qt6::Qml 的可执行文件自动配置 qmlpreview 支持 | |
默认用于创建 QML 模块的基目录 |
标准 CMake 变量
| CMAKE_AUTOGEN_BETTER_GRAPH_MULTI_CONFIG | 改进多配置生成器的依赖关系图 |
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.