Déploiement d'applications Qt sous Windows : Guide de Publication

Introduction au déploiement d'applications Qt sur Windows

Lorsqu'une application Qt est développée, elle fonctionne généralement sans problème au sein de l'environnement de développement intégré (IDE) de Qt. Cependant, une fois le fichier exécutable compilé (dans les répertoires Release ou Debug) et déplacé hors de l'environnement de développement ou distribué à des tiers, il est courant de rencontrer des erreurs liées à des bibliothèques manquantes. Ce guide détaille les étapes nécessaires pour empaqueter une application Qt sur un système Windows, garantissant son bon fonctionnement.

Utilisation de windeployqt.exe pour la publication

L'outil officiel windeployqt.exe, fourni avec l'installation de Qt, est conçu pour faciliter le déploiement d'applications. Il analyse l'exécutable de votre projet et copie automatiquement toutes les dépendances Qt nécessaires (bibliothèques dynamiques, plugins QML, etc.) dans le répertoire de l'application. Voici les étapes d'utilisation de cet utilitaire :

  1. Préparation de l'exécutable : Copiez l'exécutable de votre application Qt (généré depuis le mode Release ou Debug) dans un dossier dédié. Assurez-vous d'y inclure également toutes les bibliothèques DLL personnalisées que votre application pourrait utiliser.
  2. Ouverture de l'invite de commande : Accédez à l'invite de commande de Windows. Vous pouvez le faire en appuyant sur Win + R, en tapant cmd, puis en validant.
  3. Exécution de windeployqt : Lancez windeployqt.exe en spécifiant le chemin absolu de l'outil suivi du chemin absolu de votre exécutable.

Exemple de commande :

C:\Qt\Versions\5.15.2\msvc2019_64\bin\windeployqt.exe "C:\ProjetsQt\MonApplication\build-MonApplication-Desktop_Qt_5_15_2_MSVC2019_64bit-Release\release\MonApplication.exe"

Après l'exécution, vous constaterez que de nombreux fichiers DLL et dossiers (tels que platforms, styles, qml) ont été ajoutés à côté de votre exécutable, garantissant ainsi la présence des dépendances Qt.

Résolution des erreurs de bibliothèques d'exécution C++ (MSVC)

Même après avoir utilisé windeployqt.exe, des applications compilées avec MSVC (Microsoft Visual C++) peuvent signaler des erreurs concernant des fichiers comme msvcp140.dll ou vcruntime140.dll. Cela se produit car windeployqt gère les dépendances Qt, mais ne déploie pas toujours les bibliothèques d'exécution C++ nécessaires pour les applications compilées avec Visual Studio.

Solution : Définir la variable d'environnement VCINSTALLDIR

Pour résoudre ce problème, il est nécessaire d'indiquer à windeployqt l'emplacement des bibliothèques d'exécution de Visual Studio. Ceci peut être réalisé en définissant la variable d'environnement système VCINSTALLDIR.

  1. Localiser le répertoire Visual C++ : Trouvez le chemin d'installation de Visual Studio. Le répertoire contenant les outils C++ se trouve généralement sous un chemin similaire à C:\Program Files\Microsoft Visual Studio\2022\Community\VC (le chemin exact peut varier selon votre version et édition de Visual Studio).
  2. Ajouter la variable d'environnement :
    • Ouvrez les Propriétés Système (clic droit sur "Ce PC" > Propriétés > Paramètres système avancés).
    • Cliquez sur "Variables d'environnement...".
    • Sous "Variables système", cliquez sur "Nouvelle...".
    • Pour le "Nom de la variable", entrez VCINSTALLDIR.
    • Pour la "Valeur de la variable", entrez le chemin que vous avez trouvé (ex: C:\Program Files\Microsoft Visual Studio\2022\Community\VC).
    • Validez toutes les fenêtres.
  3. Ré-exécuter windeployqt : Après avoir défini cette variable, ouvrez une nouvelle invite de commande et exécutez à nouveau la commande windeployqt.exe pour votre application.
C:\Qt\Versions\5.15.2\msvc2019_64\bin\windeployqt.exe "C:\ProjetsQt\MonApplication\build-MonApplication-Desktop_Qt_5_15_2_MSVC2019_64bit-Release\release\MonApplication.exe"

Cette fois, la sortie de windeployqt devrait indiquer qu'il a également copié des bibliothèques liées à Visual C++, confirmant que l'environnement d'exécution MSVC est maintenant pris en compte.

Problème de la bibliothèque ucrbased.dll

Le fichier ucrtbased.dll est une bibliothèque dynamique essentielle faisant partie de la "Microsoft Universal C Runtime Libray", un composant fondamental du système d'exploitation Windows. Son absence peut empêcher le lancement d'applications.

Démarche de dépannage

Si vous rencontrez un problème avec ucrtbased.dll, suivez ces étapes :

  1. Vérification dans System32 : Recherchez le fichier ucrtbased.dll dans le répertoire C:\Windows\System32\. S'il est présent, vous pouvez le copier manuellement dans le dossier de déploiement de votre application.
  2. Téléchargement ou mise à jour : Si le fichier est manquant ou corrompu, il peut être nécessaire de télécharger et d'installer le dernier "Microsoft Visual C++ Redistributable" compatible avec votre système et votre version de Visual Studio, ou de l'obtenir via des sources fiables en ligne.

Étiquettes: Qt deployment Windows windeployqt MSVC

Publié le 16 juillet à 11h18