Déploiement
Utilisez l'API de déploiement CMake de Qt pour déployer des projets Qt pour les plates-formes de bureau. L'API prend en charge différentes plateformes cibles, que vous pouvez trouver dans la documentation qt_generate_deploy_app_script().
Le processus de déploiement varie selon que votre projet est une application Qt Widgets ou une application Qt Quick. Même si vous ne prévoyez de déployer que des applications Qt Quick, lisez d'abord la documentation sur le déploiement des applications Qt Widgets pour comprendre le processus.
Déploiement d'une application Qt Widgets
Cette section montre comment déployer une application Qt Widgets à l'aide d'un exemple de projet C++ Qt simple.
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)
Vous devez demander à CMake d'installer la cible de l'application à l'emplacement approprié. Sur macOS, les bundles sont installés directement dans ${CMAKE_INSTALL_PREFIX}, sur les autres plateformes dans le répertoire "bin".
install(TARGETS MyApp
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)Notez que qt_standard_project_setup() utilise le répertoire GNUInstallDirs.cmake de CMake. C'est ce qui définit la variable CMAKE_INSTALL_BINDIR.
Vous devez également générer un script de déploiement. Un script de déploiement est un code CMake qui est exécuté au moment de l'installation. Ce code se charge de collecter les dépendances d'exécution et de les copier dans le répertoire d'installation.
qt_generate_deploy_app_script(
TARGET MyApp
OUTPUT_SCRIPT deploy_script
NO_UNSUPPORTED_PLATFORM_ERROR
)
install(SCRIPT ${deploy_script})La commande qt_generate_deploy_app_script() génère le script de déploiement dans le répertoire de construction. Le nom du fichier du script généré est stocké dans la variable deploy_script. L'appel à install(SCRIPT) demande à CMake d'exécuter le script lors de l'installation.
Le projet peut être installé avec cmake --install . ou ninja install comme tout autre projet basé sur CMake. Après l'installation, le répertoire d'installation contient les bibliothèques partagées et les ressources nécessaires à l'exécution de l'application. En d'autres termes, l'installation produit un répertoire autonome, prêt à être empaqueté - par exemple par cpack.
Déploiement d'une application Qt Quick
Le déploiement d'un projet Qt Quick nécessite une commande différente pour générer le script de déploiement. Le reste des étapes est similaire au déploiement d'une application Qt Widgets.
Tout d'abord, vous créez l'application 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
)Vous installez l'application comme précédemment.
install(TARGETS MyApp
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)Pour générer le script de déploiement, vous appelez qt_generate_deploy_qml_app_script() au lieu de qt_generate_deploy_app_script().
qt_generate_deploy_qml_app_script(
TARGET MyApp
OUTPUT_SCRIPT deploy_script
)
install(SCRIPT ${deploy_script})Lors de l'installation, le binaire de l'application sera déployé, y compris les fichiers QML et les bibliothèques et actifs partagés de Qt qui sont utilisés par le projet. Une fois encore, le répertoire résultant est autonome et peut être empaqueté par des outils tels que cpack.
© 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.