QT_DEPLOY_LIB_DIR

在某些目标平台上部署库的相对子目录。

该变量由名为 QT_DEPLOY_SUPPORT 的脚本来定义。它应在安装或后构建规则期间部署的部分中使用。

注意:这是一个底层部署 API 变量,只能在高层 API 命令未覆盖的复杂用例中使用,例如 qt_generate_deploy_app_script

此变量自 Qt 6.3 起引入。

项目应在其部署脚本中使用 QT_DEPLOY_LIB_DIR,以避免硬编码特定的目录部署以下类型的二进制文件:

  • 除 Windows 以外的平台上的共享库。
  • Windows 上的导入库。

QT_DEPLOY_LIB_DIR 的默认值是 ${CMAKE_INSTALL_LIBDIR} 的值(通常是 liblib64),这是由 CMake 的 GNUInstallDirs 模块提供的。为了更改 QT_DEPLOY_LIB_DIR 的值,确保在找到 Core 软件包之前,项目已设置 CMAKE_INSTALL_LIBDIR

QT_DEPLOY_LIB_DIR 路径相对于 QT_DEPLOY_PREFIX

当部署到 macOS 应用程序包时,此变量没有意义,不应在此场景中使用。

示例

cmake_minimum_required(VERSION 3.16...3.22)
project(MyThings)

# The following CMAKE_INSTALL_*DIR variables are used to initialize their
# QT_DEPLOY_*_DIR counterparts.
set(CMAKE_INSTALL_BINDIR "mybindir")
set(CMAKE_INSTALL_LIBDIR "mylibdir")
set(CMAKE_INSTALL_LIBEXECDIR "mylibexecdir")

find_package(Qt6 REQUIRED COMPONENTS Core)
qt_standard_project_setup()

qt_add_executable(MyApp main.cpp)

set(deploy_script "${CMAKE_CURRENT_BINARY_DIR}/deploy_MyApp.cmake")
file(GENERATE OUTPUT ${deploy_script} CONTENT "

set(QT_DEPLOY_PLUGINS_DIR \"mypluginsdir\")
set(QT_DEPLOY_QML_DIR \"myqmldir\")
set(QT_DEPLOY_TRANSLATIONS_DIR \"i18n\")

include(\"${QT_DEPLOY_SUPPORT}\")

qt_deploy_runtime_dependencies(
    EXECUTABLE \"\${QT_DEPLOY_BIN_DIR}/$<TARGET_FILE_NAME:MyApp>\"
)")

install(SCRIPT ${deploy_script})

另请参阅:QT_DEPLOY_SUPPORTQT_DEPLOY_PREFIXQT_DEPLOY_BIN_DIRQT_DEPLOY_PLUGINS_DIRQT_DEPLOY_QML_DIRQT_DEPLOY_TRANSLATIONS_DIR

© 2024 Qt 公司有限公司。括号内包含的文档贡献是各自所有者的版权。此处提供的文档根据自由软件基金会的发布许可的条款(GNU 自由文档许可证版本 1.3)进行许可。Qt 以及相应的商标是芬兰的 Qt 公司在芬兰和其他国家的商标。所有其他商标归其各自所有者所有。