2009-10-02 9 views
6

Je développe une application basée sur qt et je voudrais développer la version 32 et 64 bits de l'application sur la même machine, partageant les mêmes sources, scripts, etc. La machine est une Ubuntu Jaunty 64bit, Intel Core i7, 8 Go de RAM. Je suis conscient que l'exécution de VMWare ou de VirtualBox peut faire fonctionner les choses, mais cela ne semble pas être une bonne solution puisque je veux utiliser le processeur (i7) dans son intégralité. J'ai lu à propos d'un environnement chrooté et il me semble que ce pourrait être l'installation que je cherchais: j'ai besoin de la machine de développement pour pouvoir exécuter les exécutables que je viens de construire.Meilleure configuration d'Ubuntu pour le développement d'applications Qt 32 bits * et * 64 bits?

Avez-vous une expérience à ce sujet? Avez-vous mis en place un tel env chrooté 32 bits sur un hôte 64 bits? Est-ce que ça marche bien? Comment l'installer correctement?

Répondre

5

J'ai été dans une situation similaire, mais pas exacte. Je développais des applications Qt4 pour Windows 32 bits en cours d'exécution sur 64 bit Jaunty. Un environnement chroot'd vous donnera ce que vous voulez, avec le désagrément mineur d'avoir à le chrooter pour compiler votre application 32 bits.

Ce que j'ai fait pour compiler pour Windows était de mettre en place un compilateur croisé spécifiquement dans ce but. Vous ne devrez probablement pas faire cela. Vous pouvez probablement vous en sortir avec la compilation g ++ -m32 en 32 bits. Pour éviter d'avoir à éditer des fichiers makefiles et un tel nombre de zillions, vous pouvez créer/modifier/utiliser les specfiles fournis avec Qt, de sorte que vous pouvez faire "qmake -project & & qmake -makefile spec blablabla" (Si je me souviens de la syntaxe de la commande correctement).

+0

J'ai découvert que "/mkspecs /" contient à la fois linux-g ++ -32 et linux-g ++ -64 et ajoute spécifiquement -m32 et -m64. Cependant, je ne suis pas pratique de chrooting donc je cherche un guide ou quelque chose sur la façon de le faire et d'effacer certains points obscurs que j'ai, c'est-à-dire, dois-je démarrer un autre Xserver pour exécuter l'application chrootée 32bit ? – Manuel

+0

Si vous utilisez les mkspecs, vous ne devriez pas avoir besoin d'utiliser un chroot.Vous devrez avoir les librairies 32 bits et 64 bits installées sur votre machine, mais après cela, vous pouvez exécuter "qmake -project && qmake -makefile linux-g ++ - && make." Il devrait ensuite s'appuyer sur tout ce que vous voulez. – ZachS

+0

Bien sûr, vous avez raison ZachS, j'ai juste un peu confus les choses: je vais d'abord essayer mkspecs. – Manuel

3

Je suis aussi dans une situation similaire, et voici comment je travaille:

J'utilise une version de Qt sur mesure. Je construis Qt deux fois, avec les mêmes options de configuration, à l'exception du paramètre -plateforme, que j'ai défini sur linux-g ++ - 64 pour la première version et linux-g ++ - 32 pour la deuxième version. J'utilise également un autre -prefix pour installer les deux versions dans des répertoires distincts. J'utilise QtCreator pour créer mes applications. J'ai ajouté les deux versions de Qt dans la boîte de dialogue Options -> Qt4 -> Qt. J'ai ensuite mis en place deux configurations de construction différentes pour mes projets, avec les mêmes options de construction, mais avec un utilisant le répertoire Qt de 32 bits, et un utilisant le répertoire Qt de 64 bits. QtCreator prend alors soin de toute la magie, et j'ai simplement besoin d'alterner entre les configurations de construction pour avoir à la fois une application Qt 32 bits et 64 bits. Pas de chroot, pas de VM, pas de rien, juste une simple construction.

Il y a cependant une mise en garde. Construire Qt pour 32 bits nécessite évidemment des versions 32 bits de la plupart des bibliothèques de développement (librairies X, stdlibs, etc.), qui sont facilement disponibles sur Ubuntu Jaunty avec ia32-libs et lib32stdC++ 6. Les seules bibliothèques que je n'ai pas réussi à trouver pour le développement 32 bits sur l'architecture 64 bits sont les bibliothèques gstreamer, ce qui signifie que Phonon pourrait ne pas fonctionner. J'avais besoin de Phonon, donc j'ai travaillé à cela en construisant Qt dans une machine virtuelle, puis en copiant le répertoire installé de Qt sur ma machine de développement.

Bonne chance.

+0

merci, cherchait cela. Je vais essayer votre méthode VM suggérée – KGCybeX

+0

J'ai besoin d'interroger votre solution. Je construis Qt5.5.1 dans un VM Ubuntu 16.04 (i386/32bit). À côté des habituels './configure -prefix/path/to/Qt5-5-1/install /' et accepter les indicateurs de licence, avez-vous spécifié une plate-forme spécifique ou des indicateurs associés? J'utilise './configure -opensource -nomake exemples -nomake tests -confirm-license -prefix/opt/qt-5.5.1' Cela vous semble-t-il familier, est-ce que je manque un drapeau? – KGCybeX

Questions connexes