Bereitstellung

Verwenden Sie die CMake Deployment-API von Qt, um Qt-Projekte für Desktop-Plattformen bereitzustellen. Die API unterstützt verschiedene Zielplattformen, die Sie in der qt_generate_deploy_app_script() Dokumentation finden können.

Der Bereitstellungsprozess hängt davon ab, ob Ihr Projekt eine Qt Widgets Anwendung oder eine Qt Quick Anwendung ist. Auch wenn Sie planen, nur Qt Quick Anwendungen einzusetzen, sollten Sie zuerst über den Einsatz von Qt Widgets Anwendungen lesen, um den Prozess zu verstehen.

Bereitstellen einer Qt Widgets Anwendung

In diesem Abschnitt wird anhand eines einfachen C++ Qt-Projekts gezeigt, wie Sie eine Qt Widgets Anwendung bereitstellen.

cmake_minimum_required(VERSION 3.16)

project(MyApp VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt6 REQUIRED COMPONENTS Core)
qt_standard_project_setup()

qt_add_executable(MyApp main.cpp)
target_link_libraries(MyApp PRIVATE Qt6::Core)

Sie müssen CMake anweisen, das Anwendungsziel an einem geeigneten Ort zu installieren. Auf macOS werden Bundles direkt in ${CMAKE_INSTALL_PREFIX} installiert, auf anderen Plattformen in das darunter liegende Verzeichnis "bin".

install(TARGETS MyApp
    BUNDLE  DESTINATION .
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

Beachten Sie, dass qt_standard_project_setup() CMake's GNUInstallDirs.cmake einbezieht. Das ist es, was die Variable CMAKE_INSTALL_BINDIR definiert.

Sie müssen auch ein Deployment-Skript erstellen. Ein Deployment-Skript ist CMake-Code, der zur Installationszeit ausgeführt wird. Dieser Code kümmert sich um die Sammlung von Laufzeitabhängigkeiten und kopiert sie in das Installationsverzeichnis.

qt_generate_deploy_app_script(
    TARGET MyApp
    OUTPUT_SCRIPT deploy_script
    NO_UNSUPPORTED_PLATFORM_ERROR
)
install(SCRIPT ${deploy_script})

Der Befehl qt_generate_deploy_app_script() generiert das Deployment-Skript im Build-Verzeichnis. Der Dateiname der generierten Skriptdatei wird in der Variable deploy_script gespeichert. Der Aufruf install(SCRIPT) weist CMake an, das Skript bei der Installation auszuführen.

Das Projekt kann mit cmake --install . oder ninja install wie jedes andere CMake-basierte Projekt installiert werden. Nach der Installation enthält das Installationsverzeichnis die gemeinsam genutzten Bibliotheken und Assets, die für die Ausführung der Anwendung erforderlich sind. Mit anderen Worten, die Installation erzeugt ein in sich geschlossenes Verzeichnis, das bereit ist, gepackt zu werden - zum Beispiel mit cpack.

Bereitstellen einer Qt Quick Anwendung

Für die Bereitstellung eines Qt Quick -Projekts ist ein anderer Befehl erforderlich, um das Bereitstellungsskript zu erzeugen. Die übrigen Schritte sind ähnlich wie bei der Bereitstellung einer Qt Widgets -Anwendung.

Zunächst erstellen Sie die Anwendung Qt Quick.

cmake_minimum_required(VERSION 3.16)

project(MyApp VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt6 REQUIRED COMPONENTS Core)
qt_standard_project_setup()

qt_add_executable(MyApp main.cpp)
qt_add_qml_module(MyApp
    URI Application
    VERSION 1.0
    QML_FILES main.qml MyThing.qml
)

Sie installieren die Anwendung wie zuvor.

install(TARGETS MyApp
    BUNDLE  DESTINATION .
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

Um das Deployment-Skript zu erzeugen, rufen Sie qt_generate_deploy_qml_app_script() anstelle von qt_generate_deploy_app_script() auf.

qt_generate_deploy_qml_app_script(
    TARGET MyApp
    OUTPUT_SCRIPT deploy_script
)
install(SCRIPT ${deploy_script})

Bei der Installation wird das Anwendungsbinary bereitgestellt, einschließlich der QML-Dateien und der gemeinsam genutzten Bibliotheken und Assets von Qt, die vom Projekt verwendet werden. Auch hier ist das resultierende Verzeichnis in sich geschlossen und kann von Tools wie cpack verpackt werden.

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