Compilation et déploiement d'applications Qt pour HarmonyOS
Remarque : Qt pour HarmonyOS est en préversion technologique et est susceptible d'évoluer dans les prochaines versions.
Cette page décrit comment compiler et empaqueter une application Qt pour HarmonyOS, ainsi que la manière de l'exécuter sur un appareil ou dans l'émulateur.
Empaquetage dans un HAP
Remarque : vous pouvez compiler des applications Qt pour HarmonyOS avec CMake ou qmake, mais la création d’un paquet HAP et le déploiement de l’application ne sont pris en charge qu’avec CMake.
Les applications HarmonyOS sont fournies sous forme de « HarmonyOS Ability Packages » (HAP). Lorsque vous créez un exécutable d’application Qt avec `qt_add_executable()` en ciblant HarmonyOS, Qt génère automatiquement une cible de compilation ` <target>_make_hap `. La compilation de cette cible produit le HAP de votre application :
cmake --build . --target <target>_make_hapFonctionnement du déploiement
La cible « <target>_make_hap » exécute harmonydeployqt, l’outil de déploiement HarmonyOS. Il suit la même approche que `androiddeployqt` : il rassemble la bibliothèque partagée de l’application, le plugin de la plateforme HarmonyOS (libqohos.so), les modules Qt requis et, pour les applications « Qt Quick », les modules QML, puis les place dans un modèle d’application HarmonyOS. Il invoque ensuite l’outil de compilation OpenHarmony hvigor pour assembler le HAP final.
Pour configurer les métadonnées écrites dans les manifestes HarmonyOS (app.json5 et module.json5) et pour déclarer les autorisations, utilisez les commandes décrites dans l’API CMake de Qt pour HarmonyOS.
Exécution de l’application
Installez et exécutez le fichier HAP obtenu sur un appareil HarmonyOS connecté ou sur l’émulateur. La méthode la plus pratique pour déployer et déboguer consiste à ouvrir le projet généré dans DevEco Studio et à utiliser ses outils d’exécution et de débogage.
© 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.