Je voulais migrer mon application Qt 4 pour utiliser Qt 5 à la place. Ces instructions a échoué, en raison de certaines différences avec la façon dont MXE construit Qt 5, y compris le fait qu'il utilise des tarballs Qt modulaires à la place d'un grand tarball.
Voici les instructions complètes:
Trouver:
git clone https://github.com/mxe/mxe.git
Installer construire des dépendances
Construisez Qt 5 pour Windows:
cd mxe && make qtbase
Cela créera d'abord ses dépendances et les outils de génération croisée; Cela devrait prendre moins d'une heure sur une machine rapide avec un accès Internet décent.
En raison de la nouvelle nature modulaire de Qt 5, divers composants majeurs de Qt sont désormais dans différentes tarballs. 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 (petite) application.
Si vous souhaitez construire l'intégralité de Qt 5 à la place, vous devrez exécuter make qt5
(au lieu de make qtbase
). Notez que cela prendra beaucoup plus de temps, alors assurez-vous que vous avez besoin des fonctionnalités supplémentaires.
Accédez au répertoire de votre application et exécutez l'outil générateur Qt Makefile:
<mxe root>/usr/bin/i686-w64-mingw32.static-qmake-qt5
Construisez votre projet:
make
Vous devriez trouver le binaire dans le répertoire ./release:
wine release/foo.exe
Quelques notes:
Cela a été testé sur ma Debian 8 64 bits, et sur Windows bien sûr.
La sortie est un exécutable statique 32 bits, qui fonctionnera bien sur Windows 64 bits.
Si vous voulez un exécutable 64 bits, construisez Qt avec:
make MXE_TARGETS=x86_64-w64-mingw32.static qtbase
Le défaut MXE_TARGETS
La valeur est i686-w64-mingw32.static
.
La commande git checkout n'est pas correcte. Vous devez maintenant obtenir leur branche stable sinon la construction échouera.
git clone https://github.com/mxe/mxe.git
devrait être...
git clone -b stable https://github.com/mxe/mxe.git
Cela seul a résolu tous mes problèmes avec la construction de qtbase mais sans laisser de dossier qt une fois terminé. La cible qt5 échouerait alors avec des erreurs obscures. Dossier supprimé, extrait stable et cela a fonctionné parfaitement.
Si vous essayez de faire ça, pour moi ça marche bien!
su
mv mxe /opt/mxe
cd /opt/mxe && make