Distribuer les binaires de QT creator - [Le calepin du geek]
Le calepin du geek
Geek : Personne s’intéressant à des domaines pointus, avec une once de créativité.

Ceci est un site perso, dans le pur esprit web 1.0, compilant des notes diverses sur des thèmes d’intérêt. (Informatique, programmation, voyage à vélo, réflexions)

Distribuer les binaires de QT creator
Article mis en ligne le 28 décembre 2011
par aldoniel
Imprimer cet article logo imprimer

C’est pas simple...

 Compiler en release

ça va créer un répertoire release dans le répertoire du projet.

PNG - 95.5 ko

 Ajouter les dll dans le répertoire de l’exécutable

Pour des raisons obscures, (on va dire, gain de temps de compilation), la compilation se fait en dynamique par défaut. On pourrait croire que différentes applications peuvent ainsi partager les mêmes dll.
Erreur...
Le binaire ne peut s’éxécuter qu’avec la dll de la même version de Qt qui a servi à la compilation.
Rien que dans le SDK fraichement installé, ce n’est pas le cas : on y trouve 36 versions toutes incompatibles des mêmes dll (et de taille proche).

 Mais comment trouver les dll ?

Sur internet, on trouvera différents chemins variables selon la version de Qt...(j’ai la 4.7.4)
On peut trouver ceux de sa version avec Process Explorer

  • lancer l’exécutable release depuis QtCreator
  • clic-droit → propriétés de l’exécutable PNG Il est directement lancé avec un PATH correctement réglé

Ajouter ces fichiers dans le répertoire de travail de l’éxécutable :

  • libgcc_s_dw2-1.dll
    • trouvé dans C :\QtSDK\mingw\bin
  • (mingwm10.dll est dans le même répertoire ; il est conseillé par certains sites, mais ça marche très bien sans chez moi)
  • QtCore4.dll et QtGui4.dll
    • trouvé dans C :\QtSDK\Desktop\Qt\4.7.4\mingw\lib
    • et dans C :\QtSDK\Desktop\Qt\4.7.4\mingw\bin : curieusement, ces dll sont des versions différentes mais qui semblent interchangeables (Je n’ai pas essayé de les mélanger quand même.)
    • (leur absence donne respectivement "Le point d’entrée de procédure _Z5qFreePv est introuvable dans la bibliothèque de liaisons dynamique QtCore4.dll." et "Le point d’entrée de procédure ?y@QPoint@@QBEHXZ est introuvable dans la bibliothèque de liaisons dynamique QtCore4.dll." Message idiot qui ne permet pas de deviner d’où vient le problème.)


Wouaou...

 Notes

PNG
J’ai quand même mingwm10.dll qui apparaît en string dans mon binaire. J’en ai peut être pas besoin parce que je suis sur un pc de développeur.
Penser à faire un test sur une machine vierge.

 Ressources

A télécharger

Pas de documents à télécharger pour cet article


Site réalisé sous SPIP
avec le squelette ESCAL-V3
Version : 3.70.61