Deploy an Application on Windows/fr

From Qt Wiki
< Deploy an Application on Windows
Revision as of 14:57, 20 September 2016 by Gwenloh (talk | contribs) (Created page with "{{LangSwitch}} Category:French = Déploiement d’application QT pour windows = Ce guide est écrit pour Qt 5. Il présuppose que : * La release version de votre appli...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

Déploiement d’application QT pour windows

Ce guide est écrit pour Qt 5. Il présuppose que :

  • La release version de votre application fonctionne correctement lorsque construite et exécutée depuis Qt Creator
  • Votre copie (dynamiquement liée) de Qt est installée dans C:\Qt\5.2.1\mingw48_32\

autre versions testées : Qt 5.6 avec mingw49_32 ;

Aperçu

Pour déployer une application Qt, vous aurez besoin de rassembler des fichiers depuis différents répertoires. Ici est pris en exemple une application utilisant Qt Quick pour afficher une image (Note : LES DLLS SPÉCIFIQUES A UN PACKAGE NE SONT PAS MONTRÉES) :

Qt Deployment Structure Windows.png

Trouver les fichiers requis

Voir Qt for Windows – Deployment pour les instructions officielles. Parfois cependant, le déploiement semble bon, mais lorsque l’application est lancée, certaines choses ne fonctionnent pas correctement. Une fenêtre apparaît vide, une image ne s’affiche pas ou un fichier son n’est pas joué. Lorsque cela arrive, c’est probable ment qu’il vous manque un fichier qui n’est chargé qu’à l’exécution (comme la DLL d’un plugin). Ces fichiers peuvent être délicats à identifier. Voici une façon de réussir systématiquement votre déploiement.

Déploiement initial (rapide et grossier)

  1. Fermer Qt Creator ;
  2. Copier les élements suivant dans C:\Deployment\
    1. La version release de MyApp.exe ;
    2. Tous les fichiers .dll de C:\Qt\5.2.1\mingw48_32\bin\ \ ;
    3. Tous les répertoires de C:\Qt\5.2.1\mingw48_32\plugins\ ;
    4. (Si vous utilisez QML) Tous les répertoires de C:\Qt\5.2.1\mingw48_32\qml\.
  3. Renommer C:\Qt en C:\QtHidden\ (Cela donne à votre PC un environnement propre, comme si Qt n’y était pas installé) ;
  4. Lancer C:\Deployment\MyApp.exe.

Si votre application fonctionne correctement, félicitations ! Votre déploiement est presque près. Mais vous ne voulez pas livrer un gros paquet de 1,5Go, il est donc temps de ce débarrasser de tous les fichiers inutiles. Si l’application ne fonctionne pas, demandez de l’aide (voir l’Annexe).

Déploiement final (Nettoyage)

Faire toutes les étapes de suppressions ci-dessous dans le répertoire C:\Deployment\ et dans tous ses sous-répertoires. Après chaque suppression, relancez C:\Deployment\MyApp.exe et testez la. Si elle ne fonctionne plus, restaurer les fichiers tout juste supprimés.

  1. Lancer MyApp.exe. Pendant qu’elle fonctionne, essayer de supprimer toutes les DLLs. Les DLLs qui ne sont pas utilisés vont dans la corbeille, laissant uniquement les DLLs nécessaires. (Cette astuce ne fonctionne pas pour les fichiers .qml et qmldir) ;
  2. (Si vous utilisez QML) Supprimer quelques .qml et essayer de relancer MyApp.exe. Répéter l’opération jusq’à avoir essayé tous les fichiers .qml ;
  3. (Si vous utilisez QML) Supprimer les fichiers qmldir des répertoires que ne contiennent plus ni DLLs, ni fichiers .qml .

Lorsque vous avez supprimé tous les fichiers dont vous n’avez pas besoin,

  1. Renommer C:\QtHidden\ en C:\Qt\ pour remettre en place votre installation ;
  2. Distribuer votre application.

Annexe : Comment demander de l’aide

Si vous êtes toujours coincé,

  1. Débuter un nouveau port sur le forum du Projet Qt ;
  2. Préciser que vous avez suivi ce guide. Préciser quelles tentatives ont fonctionné et quelles tentatives ont échoué ;
  3. Décrire comment elles ont échoué et fournir tous les messages d’erreur que vous avez vu ;
  4. Fournir une capture d’écran du contenu de C:\Deployment\ .

Rappelez-vous : plus vous fournissez d’information, meilleurs sont vos chances d’obtenir une solution !