qt_deploy_bin_dir

前缀相关子目录,用于在某些目标平台上部署运行时二进制文件。

此变量由QT_DEPLOY_SUPPORT 命名的脚本定义。它只能作为安装过程中部署的一部分或编译后规则使用。

注意: 这是一个低级部署 API 变量,只能在高级 API 命令(如qt_generate_deploy_app_script)未涵盖的高级用例中使用。

此变量在 Qt 6.3 中引入。

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

  • 所有平台上的可执行文件。
  • Windows 上的 DLL。

QT_DEPLOY_BIN_DIR 默认值为 (通常为 ),它由 CMake 的${CMAKE_INSTALL_BINDIR} binGNUInstallDirs模块提供。要更改 的值,请确保项目在找到 软件包之前设置 。QT_DEPLOY_BIN_DIR Core CMAKE_INSTALL_BINDIR

QT_DEPLOY_BIN_DIR 路径是相对于QT_DEPLOY_PREFIX 的。

该变量在部署到 macOS 应用程序捆绑包时没有意义,因此不应在这种情况下使用。

示例

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

find_package(Qt6 REQUIRED COMPONENTS Core)
qt_standard_project_setup()

qt_add_executable(MyApp main.cpp)

set_target_properties(MyApp PROPERTIES
    WIN32_EXECUTABLE TRUE
    MACOSX_BUNDLE TRUE
)

# App bundles on macOS have an .app suffix
if(APPLE)
    set(executable_path "$<TARGET_FILE_NAME:MyApp>.app")
else()
    set(executable_path "\${QT_DEPLOY_BIN_DIR}/$<TARGET_FILE_NAME:MyApp>")
endif()

# Helper app, not necessarily built as part of this project.
qt_add_executable(HelperApp helper.cpp)
set(helper_app_path "\${QT_DEPLOY_BIN_DIR}/$<TARGET_FILE_NAME:HelperApp>")

# Generate a deployment script to be executed at install time
qt_generate_deploy_script(
    TARGET MyApp
    OUTPUT_SCRIPT deploy_script
    CONTENT "
qt_deploy_runtime_dependencies(
    EXECUTABLE \"${executable_path}\"
    ADDITIONAL_EXECUTABLES \"${helper_app_path}\"
    GENERATE_QT_CONF
    VERBOSE
)")

# Omitting RUNTIME DESTINATION will install a non-bundle target to CMAKE_INSTALL_BINDIR,
# which coincides with the default value of QT_DEPLOY_BIN_DIR used above, './bin'.
# Installing macOS bundles always requires an explicit BUNDLE DESTINATION option.
install(TARGETS MyApp HelperApp    # Install to CMAKE_INSTALL_PREFIX/bin/MyApp.exe
                                   #                           and ./binHelperApp.exe
        BUNDLE  DESTINATION .      # Install to CMAKE_INSTALL_PREFIX/MyApp.app/Contents/MacOS/MyApp
)
install(SCRIPT ${deploy_script})    # Add its runtime dependencies

另请参阅 QT_DEPLOY_SUPPORTQT_DEPLOY_PREFIXQT_DEPLOY_LIBEXEC_DIRQT_DEPLOY_LIB_DIRQT_DEPLOY_ PLUGINS_DIRQT_DEPLOY_QML_DIRQT_DEPLOY_TRANSLATIONS_DIR

© 2025 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.