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.

46
demandé sur Community 2013-01-05 13:50:54

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 de make 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 est i686-w64-mingw32.static .

79
répondu Tshepang 2015-03-23 17:52:19

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.

5
répondu AcidTonic 2014-11-12 08:58:43