Installer Qt pour développer en 32bits et 64bits

Publié dans C / C++ | Marqué avec , , ,
Share

Comment installer plusieurs versions de Qt en même temps, et surtout, comment gérer une cross-compilation 32bits / 64bits ? Voilà un problème qui peut prendre des heures à régler… C’est possible, autant sous Windows que sous Linux.

Pour ma part, je compile sous Debian testing (jessie) pour Qt5.3 ou Qt5.4 en 32bits ou 64bits, et grâce à Wine, je compile aussi pour Windows pour Qt5.1, Qt5.3 ou  Qt5.4 en 64bits. Je garde toujours un Qt5.1 sous Windows car c’est la dernière version à fonctionner convenablement pour Windows XP.

Compiler est une chose, et je ne m’y attarderai pas trop dans ce billet, mais installer est la première étape. La méthode 1 ne fonctionne que sous Linux (et ne marche pas d’ailleurs). La méthode 2 conviendra à Windows et Linux.

Méthode 1 : Gestionnaire de paquets Linux

Autant le dire tout de suite, cette méthode ne fonctionne pas vraiment. Avec mes connaissances actuelles en tout cas.

Premièrement, sous Debian jessie, seule Qt5.3 est disponible aujourd’hui. C’est déjà bien car dans Debian wheezy, on était vraiment à une version trop ancienne de Qt. Je suppose qu’il existe des moyens d’ajouter des dépôts pour installer d’autres versions.

Deuxièmement, si on se content d’utiliser la version disponible, il faut installer la version Qt5.3 32bits et 64bits. Ce n’est possible que sur une machine 64bits bien entendu. Par défaut, apt-get va installer la version 64bits, mais en précisant « :i386 » après le nom du package, on indique à apt-get d’installer la version 32bits.

Il faudrait que je détaille d’avantage cette partie.

Méthode 2 : Qt Installer

L’autre solution, promue par Qt, est d’utiliser le Qt Installer en le téléchargeant sur Qt.io. Cet outil avait tendance à planter régulièrement dans le passé, mais cela va de mieux en mieux. Ce n’est pas aussi bien que de passer par le gestionnaire de paquets Linux, mais cela permet de gérer tout de même les différents composants Qt (et les différentes versions) comme des paquets. En bonus, le fonctionnement est similaire sous Windows et Linux.

Après avoir télécharger le soft, y avoir ajouter les droits en exécution (chmod u+x qt-opensource….run), une interface comme celle-ci apparaît :

qt-installer

L’outil est déjà configuré pour aller attaquer un dépôt Qt. Si vous cherchez à faire de la cross-compilation 32bits/64bits, je suppose que vous avez installé la version 64bits. En tout cas, il faut rajouter le dépôt vers l’autre version. Pour se faire, il faut cliquer sur « Paramètres » pour sélectionner l’onglet « Dépôts ». Tout en bas, il est possible d’ajouter un « Dépôt défini par l’utilisateur ». Il faut copier ici l’url du dépôt désiré. Attention, pas de slash à la fin !

  • Pour la version 64bits: http://download.qt.io/online/qt5/linux/x64/online_repository
  • Pour la version 32bits: http://download.qt.io/online/qt5/linux/x86/online_repository

qt5-installer-paramsEt voilà, il ne reste plus qu’à sélectionner les versions de Qt et les outils Qt que l’on souhaite installer.

qt-installer-select

Une fois l’installation terminée, on peut voir dans QtCreator que les différentes versions sont installés.

qtcreator-kitMalheureusement, la bataille n’est pas encore tout à fait gagnée ! La version 64bits va compiler sans problème avec GCC 64bits. Pour une raison que j’ignore, la version 32bits va tenter de compiler avec Clang 32bits. A condition bien sûr, que vous ayez installé tous les paquets pour que Clang (ou GCC) puissent compiler en 32bits. Et là il faut que je retrouve mes notes pour expliquer quelles sont les paquets en question.

C’est plutôt pas mal, mais j’aimerai aller plus loin et pouvoir compiler, avec GCC, l’exécutable 32bits et 64bits sans qu’ils s’écrasent mutuellement à chaque fois. Et là, il faut attaquer la ligne de commande (pour préciser -spec linux-g++-32 ou linux-g++-64) et modifier le fichier .pro pour compiler dans un dossier séparé. Là encore, cela devrait faire l’objet d’un autre billet.

Une réponse à Installer Qt pour développer en 32bits et 64bits

  1. Depuis Qt 5.5, soit les dépôts Qt n’ont plus la bonne tête, soit l’outil de maintenance a été mis à jour (et c’est le cas, il faut désormais s’authentifier, … compliqué), en tout cas l’ajout de dépôt ne fonctionne plus.
    Je n’ai actuellement pas de solution.

    Cela fonctionne avec l’ancienne version du Qt Maintenance Tool. J’avais d’ailleurs une « error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory » quand je le lançait. Mais un « dpkg -S libfontconfig.so » m’a permis de trouver le paquet à installer pour avoir cette bibliothèque. En fait j’avais une version 64bit, mais visiblement mon Qt MaintenanceTool était en 32bit. Donc : « sudo apt-get install libfontconfig1:i386 ».

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*