Forum Programmation.c++ MXE : cross-compilation Linux > Windows en 64 bits

Posté par (page perso) . Licence CC by-sa.
0
5
nov.
2014

Bonjour,
je m'emmêle un peu les pinceaux avec les possibilités offertes par le projet MXE. Depuis Linux, j'ai à cross-compiler un projet (C++/Qt5) vers du Windows, en 32 bits et en 64 bits. Je lis que MXE peut utiliser ou bien MinGW 3x/4x ou bien MinGW-w64. Pourriez-vous confirmer si les points suivants sont exacts ?

(1) après l'installation vers un répertoire que je nomme mxe32(a), un make gcc qt5 crée un mxe32/usr/bin/i686-pc-mingw32-gcc . J'imagine qu'il s'agit d'un gcc issu du projet MinGW et que l'utiliser produira des binaires 32 bits.
(2) si j'installe en parallèle MXE dans un répertoire nommé mxe64(b) et que je fais un make MXE_TARGETS='x86_64-w64-mingw32 i686-w64-mingw32' gcc qt5 je vois apparaître deux types de fichiers : mxe64/usr/bin/i686-w64-mingw32-gcc d'une part, et mxe64/usr/bin/x86_64-w64-mingw32-gcc d'autre part. C'est là où je ne comprends plus : ces fichiers sont-ils issus de MinGW 3x/4x ou bien de MinGW-w64 ? Le i686 produit-il du code 32 bits comme son nom le laisse suggérer, celui en x86_64 produisant du 64 bits ?
(3) y a-t-il un intérêt à utiliser MinGW 3x/4x plutôt que MinGW-w64 ?

Merci de m'éclairer !

Notes :
(a) git clone -b stable https://github.com/mxe/mxe.git mxe32
(b) git clone -b stable https://github.com/mxe/mxe.git mxe64

  • # de l'usage de make et ses options

    Posté par . Évalué à 3.

    dans le cas 1) tu fais un simple make gcc qt5
    alors que dans le 2) tu lui demandes expressement MXE_TARGETS=x86_64-w64-wingw32 i686-w64-mingw32

    dans le premier tu as donc simplement le i686 qui est calculé (probablement par defaut)
    dans le 2e il te crees bien deux produits, comme tu le lui a demandé :

    • la version x86_64 de MinGW-w64 (le w86_64- w64 -wingw32)
    • la version i686 de MinGW-w64 (le i686- w64 -wing32)

    enfin pour la 3e question, je crois qu'une simple visite sur les sites des projets reponds à la question.

    wingw-w64 fournit : GCC for both 64 & 32 bits Windows

    alors que mingw ne semble fournit que la version 32 bits.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.