Construire Qt 5 sous Linux, Pour Windows
je voulais migrer mon application Qt 4 pour utiliser Qt 5 à la place. ces instructions ont échoué, en raison de certaines différences avec la façon dont MXE construit Qt 5, y compris le fait qu'il utilise des balles de tarballs QT modularisées, au lieu d'une grande boule de tarball.
2 réponses
Voici les instructions complètes:
-
:
git clone https://github.com/mxe/mxe.git
-
Installer dépendances
-
construire Qt 5 Pour Windows:
cd mxe && make qtbase
cela construira d'abord ses dépendances et les outils de cross-build; Il devrait prendre moins d'une heure sur une machine rapide avec décent l'accès à internet.
en raison de la nouvelle nature modulaire de Qt 5, plusieurs composants majeurs de Qt sont maintenant dans des balles de tarb différents. Celui sélectionné ci-dessus,
qtbase
, devrait vous donner suffisamment de fonctionnalités pour exécuter des applications GUI ordinaires, ce qui est tout ce dont j'avais besoin pour ma propre application (petite).si vous voulez construire tout Qt 5 à la place, vous devrez exécuter
make qt5
(au lieu demake qtbase
). Notez qu'il faudra beaucoup plus de temps, alors assurez-vous que vous besoin de fonctionnalités supplémentaires. -
accédez au répertoire de votre application et lancez le générateur de Makefile QT:
<mxe root>/usr/bin/i686-w64-mingw32.static-qmake-qt5
-
Construisez votre projet:
make
-
vous devez trouver le binaire dans le ./communiqué de répertoire:
wine release/foo.exe
Quelques notes:
-
cela a été testé sur ma version 64 bits de Debian 8, et sur Windows Bien sûr.
-
la sortie est un exécutable statique 32 bits, qui fonctionnera bien sur les fenêtres 64 bits.
-
si vous voulez un exécutable 64 bits, construisez Qt avec:
make MXE_TARGETS=x86_64-w64-mingw32.static qtbase
la valeur par défaut
MXE_TARGETS
esti686-w64-mingw32.static
.
la commande git checkout n'est pas correcte. Vous devez maintenant obtenir leur branche stable ou il échouera de la construction.
git clone https://github.com/mxe/mxe.git
devrait l'être...
git clone -b stable https://github.com/mxe/mxe.git
qui seul a corrigé tous mes problèmes avec la construction de qtbase mais ne laissant pas de dossier qt lorsqu'il est fait. Alors la cible qt5 échouerait avec des erreurs obscures. Dossier Supprimé, vérifié stable et il a fonctionné sans faille.