QT_DEPLOY_BIN_DIR

Präfix-relatives Unterverzeichnis für die Bereitstellung von Laufzeit-Binärdateien auf einigen Zielplattformen.

Diese Variable wird durch das von QT_DEPLOY_SUPPORT benannte Skript definiert. Sie sollte nur als Teil der Bereitstellung während der Installation oder als Post-Build-Regel verwendet werden.

Hinweis: Dies ist eine Low-Level Deployment-API-Variable und sollte nur in fortgeschrittenen Anwendungsfällen verwendet werden, die nicht von den API-Befehlen auf höherer Ebene, wie qt_generate_deploy_app_script, abgedeckt werden.

Diese Variable wurde in Qt 6.3 eingeführt.

Projekte sollten QT_DEPLOY_BIN_DIR in ihren Deploy-Skripten verwenden, um zu vermeiden, dass ein bestimmtes Verzeichnis fest kodiert wird, in dem die folgenden Arten von Binärdateien bereitgestellt werden sollen:

  • Ausführbare Dateien auf allen Plattformen.
  • DLLs unter Windows.

QT_DEPLOY_BIN_DIR standardmäßig den Wert von ${CMAKE_INSTALL_BINDIR} (normalerweise bin), der vom CMake-Modul GNUInstallDirs bereitgestellt wird. Um den Wert von QT_DEPLOY_BIN_DIR zu ändern, stellen Sie sicher, dass das Projekt CMAKE_INSTALL_BINDIR setzt, bevor das Paket Core gefunden wird.

Der Pfad QT_DEPLOY_BIN_DIR ist relativ zu QT_DEPLOY_PREFIX.

Diese Variable ist bei der Bereitstellung in einem macOS-App-Bundle nicht sinnvoll und sollte in diesem Szenario nicht verwendet werden.

Beispiel

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

Siehe auch QT_DEPLOY_SUPPORT, QT_DEPLOY_PREFIX, QT_DEPLOY_LIBEXEC_DIR, QT_DEPLOY_LIB_DIR, QT_DEPLOY_PLUGINS_DIR, QT_DEPLOY_QML_DIR, und QT_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.