QT_DEPLOY_QML_DIR
在某些目标平台上部署 QML 插件时,相对于前缀的子目录。
该变量由名为QT_DEPLOY_SUPPORT 的脚本定义。它仅应作为安装过程中的部署环节或构建后规则的一部分使用。
注意:这是一个 低级部署 API 变量,仅应在高级用例中使用,这些用例未被更高层级的 API 命令(如qt_generate_deploy_app_script)所涵盖。
该变量于 Qt 6.3 版本中引入。
项目应在部署脚本中使用 `QT_DEPLOY_QML_DIR `,以避免硬编码用于部署 QML 模块的特定目录。
QT_DEPLOY_QML_DIR 默认值为qml 。若要更改 `QT_DEPLOY_QML_DIR` 的值,请在包含 `QT_DEPLOY_SUPPORT ` 之前,在项目部署脚本中进行设置。
QT_DEPLOY_QML_DIR 路径是相对于QT_DEPLOY_PREFIX的。
在将应用部署到 macOS 应用包时,该变量没有实际意义,因此不应在此场景下使用。 Apple 的 macOS 应用程序包指南要求所有插件都部署到应用程序包内容的PlugIns 子目录中,而所有其他非二进制文件通常应位于Resources 子目录下。因此,QML 模块的不同部分需要部署到应用程序包内的不同位置。
示例
cmake_minimum_required(VERSION 3.16...3.22)
project(MyThings)
find_package(Qt6 REQUIRED COMPONENTS Quick)
qt_standard_project_setup()
qt_add_executable(MyApp main.cpp)
qt_add_qml_module(MyApp
URI myapp
QML_FILES main.qml
)
set(deploy_script "${CMAKE_CURRENT_BINARY_DIR}/deploy_MyApp.cmake")
file(GENERATE OUTPUT ${deploy_script} CONTENT "
set(QT_DEPLOY_QML_DIR \"myqmldir\")
include(\"${QT_DEPLOY_SUPPORT}\")
qt_deploy_qml_imports(
TARGET MyApp
PLUGINS_FOUND plugins_found
)
qt_deploy_runtime_dependencies(
EXECUTABLE \"\${QT_DEPLOY_BIN_DIR}/$<TARGET_FILE_NAME:MyApp>\"
ADDITIONAL_MODULES \${plugins_found}
)")
install(SCRIPT ${deploy_script})另请参阅 QT_DEPLOY_SUPPORT、QT_DEPLOY_PREFIX、QT_DEPLOY_BIN_DIR、QT_DEPLOY_LIBEXEC_DIR、QT_DEPLOY_LIB_DIR、QT_DEPLOY_PLUGINS_DIR 以及QT_DEPLOY_TRANSLATIONS_DIR。
© 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.