Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.7.1 - Qt Creator : 4.2.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Déployer un programme Qt5 sur Windows (avec windeployqt)

Salut,

Voici une manière de déployer un programme ou simplement connaitre les dll nécessaires.
Il existe pour cela : windeployqt.
windeployqt va ajouter le nécessaires au bon fonctionnement du programme dans le même dossier.
Cet outil se trouve dans : Chemin_Installation_SDK_QT/Version_De_La_Lib_Qt/Compilateur_Et_Version_du_compilateur/bin
soit chez moi : C:\Qt\5.4\mingw491_32\bin
Sa documentation se trouve sur http://doc.qt.io/qt-5/windows-deployment.html.
Et à la fin il y a la section "The Windows Deployment Tool"

Il faut :
* Ouvrir le terminal pré-configuré pour Qt :
* Menu_Démarrer->Tous_les_Programmes->Qt->Version_De_La_Lib_Qt->Compilateur_Et_Version_du_compilateur->terminal
soit chez moi : Menu_Démarrer->Tous_les_Programmes->Qt->5.4->"MinGW 4.9 (32bit)"->"Qt 5.4 for Desktop (MinGW 4.9 32 bit"
* dans le terminal, aller à l'endroit de l'exécutable de votre programme.
* Commande "cd .." dans le terminal Qt pour remonter au dossier parent
* Commande "cd Qt_test" par exemple dans le terminal Qt pour descendre dans le dossier enfant nommé Qt_test
* Entrer : "windeployqt.exe ." sans les guillemets dans le terminal Qt et sans oublier le point à la fin.
Le dossier devrait se remplir de tout le nécessaire pour que votre programme fonctionne correctement.

Voici le détail en vidéo de son utilisation :
[video=480,360]http://www.youtube.com/watch?v=raueG9n6rC4[/video]


Maintenant pour réaliser automatiquement ce déploiement dans QtCreator :
* Dans l'onglet Projet
* Sélectionner son Kit (exemple "Desktop Qt 5.4.1 MinGW 32bit" dans mon cas)
* Sélectionner le sous onglet "Exécuter"
* Dans la section "Déploiement"
* Cliquer sur "Ajouter l'étape Déploiement" et sélectionner "Etape personnalisée"
* Dans cette étape personnalisée, ajouter dans les champs :
* Commande : windeployqt.exe
* Argument : .
* Répertoire de travail : %{buildDir}\release
Voici ci-dessous une illustration de cette configuration :
image

Maintenant, à chaque exécution, QtCreator lancera le déploiement.

Réponses

  • Merci !!
    Pourrais-tu indiquer quelque part que cela ne s'adresse qu'aux utilisateurs de Windows ? Merci.
  • Y a t-il pas un équivalent sur les autres plateformes ?
  • Merci, j'avais galéré il y a quelques temps, la prochaine fois sera plus facile.
    Je ne connais pas Mac mais pour GNU/Linux, chaque distribution propose sa façon de gérer les paquets. Liste non exhaustive des types de "paquet" (équivalent à un installateur grosso modo) :
    .deb pour *buntu et debian
    .rpm pour Red Hat
    .tar.xz pour Arch
    La gestion de la dépendance Qt est gérée différemment que sous Windows car c'est le logiciel qui s'occupe d'installer ton logiciel qui va installer, si besoin, la bonne version de Qt depuis les dépôts officiels.
  • Excuse moi loupium d'avoir lancé une discussion parallèle sur ton sujet, mon intention n'était que de faire remarquer que les Qtistes n'utilisaient pas tous Windows. Je vais ouvrir un nouveau fil ce soir ou demain pour parler du déploiement Linux. ;)

    Merci de commenter dans ce fil le 1er message de loupium, ce qui suit va déménager !! :lol:
  • L'équivalence d'un paquet sur les distribution linux est plus un installateur windows (exemple avec InnoSetup).
    windeployqt ajoute seulement le nécessaires au bon fonctionnement du programme dans le même dossier. Le logiciel est "portable".
    De mémoire, il est possible aussi sur linux d'avoir toutes les dépendance dans le même dossier.
    Et donc de pas dépendre des versions de Qt de la distribution linux.
  • Disons que c'est assez pratique, moi, qui distribue rolisteam sur GNU/Linux, windows et Mac Os. J'ai découvert le windeployqt tu mets tous dans le dossier et ensuite innosetup (ou autres outils) permet de créer un installeur.
    Sur mac os, il y a un outil similaire qui est plus vieux. Qui permet de creér un bunble, sorte de dossier/archive qui contient l'ensemble des dépendances de l'application.
    Sur, linux, il y a moins de problèmes car vous définissez les dépendances de votre application (dans le .pro). Vous reportez ces dépendances dans le système de construction de package et lui, il va calculer les dépendances de vos dépendances.
  • Je sais que windeployqt est :
    * présent a partir de Qt 5.4
    * non présent avant Qt 5.2
    Quelqu’un peut-il me dire si windeployqt est présent dans Qt 5.3 ?
  • Bonjour,
    Je me demande aussi si cette solution est valable pour d’autres plateformes. Si vous avez une réponse à cette question, pouvez-vous nous en dire un peu plus car moi particulièrement, j’en ai vraiment besoin pour accomplir une mission assez importante. Sinon je suis foutu. Merci.

  • Salut,
    Comme le nom l'indique, windeployqt est un outil pour windows.
  • June 2016 modifié
    J'arrive un peu tard...
    Pour Mac -> macdeployqt, meme fonctionnement que windowdeployqt. Cf http://doc.qt.io/qt-5/osx-deployment.html#the-mac-deployment-tool
    Pour Linux, pas d'outil equivalent, il faut indiquer les dependances lors de la creation des paquets. Cf la doc http://doc.qt.io/qt-5/linux-deployment.html
    Pour Android et iOS : ils utilisent leur propre outil de deploiement.
    Note: si vous utiliser cmake pour gerer votre projet, vous pouvez utiliser directement CPack, qui creer les paquets tout seul (windows, mac, linux)
Connectez-vous ou Inscrivez-vous pour répondre.