Bereitstellung
Verwenden Sie die CMake-Bereitstellungs-API von Qt, um Qt-Projekte für Desktop-Plattformen bereitzustellen. Die API unterstützt verschiedene Zielplattformen, die Sie in der Dokumentation zu `qt_generate_deploy_app_script() ` finden.
Der Bereitstellungsprozess hängt davon ab, ob es sich bei Ihrem Projekt um eine „ Qt Widgets “-Anwendung oder eine „ Qt Quick “-Anwendung handelt. Auch wenn Sie vorhaben, ausschließlich „ Qt Quick “-Anwendungen bereitzustellen, sollten Sie sich zunächst über die Bereitstellung von „ Qt Widgets “-Anwendungen informieren, um den Prozess zu verstehen.
Bereitstellung einer „ Qt Widgets “-Anwendung
In diesem Abschnitt wird anhand eines einfachen C++-Qt-Projekts gezeigt, wie eine „ Qt Widgets “-Anwendung bereitgestellt wird.
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 am richtigen Speicherort zu installieren. Unter macOS werden Bundles direkt in „ ${CMAKE_INSTALL_PREFIX} “ installiert, auf anderen Plattformen im darunterliegenden Verzeichnis „ "bin" “.
install(TARGETS MyApp
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)Beachten Sie, dass „qt_standard_project_setup()“ die CMake-Datei „ GNUInstallDirs.cmake “ einbindet. Dadurch wird die Variable „ CMAKE_INSTALL_BINDIR “ definiert.
Außerdem müssen Sie ein Bereitstellungsskript generieren. Ein Bereitstellungsskript ist CMake-Code, der bei der Installation ausgeführt wird. Dieser Code sorgt dafür, dass Laufzeitabhängigkeiten gesammelt und in das Installationsverzeichnis kopiert werden.
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 Bereitstellungsskript im Build-Verzeichnis. Der Dateiname der generierten Skriptdatei wird in der Variablen ` deploy_script ` gespeichert. Der Aufruf von ` install(SCRIPT) ` weist CMake an, das Skript bei der Installation auszuführen.
Das Projekt kann wie jedes andere CMake-basierte Projekt mit ` cmake --install . ` oder ` ninja install ` installiert werden. Nach der Installation enthält das Installationsverzeichnis die gemeinsam genutzten Bibliotheken und Ressourcen, die zum Ausführen der Anwendung erforderlich sind. Mit anderen Worten: Die Installation erzeugt ein in sich geschlossenes Verzeichnis, das bereit ist, gepackt zu werden – beispielsweise mit ` cpack`.
Bereitstellung einer „ Qt Quick “-Anwendung
Für die Bereitstellung eines „ Qt Quick “-Projekts ist ein anderer Befehl erforderlich, um das Bereitstellungsskript zu generieren. Die übrigen Schritte ähneln denen bei der Bereitstellung einer „ Qt Widgets “-Anwendung.
Zunächst erstellen Sie die „ Qt Quick “-Anwendung.
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 Bereitstellungsskript zu generieren, 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 die Anwendungsdatei bereitgestellt, einschließlich der QML-Dateien sowie der gemeinsam genutzten Bibliotheken und Ressourcen von Qt, die vom Projekt verwendet werden. Auch hier ist das resultierende Verzeichnis in sich geschlossen und kann mit Tools wie cpack gepackt werden.
© 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.