Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tutoriel:comment_utiliser_mingw32_pour_faire_des_executables_windows [Le 09/03/2015, 15:42] – [Erreur de compilation] 195.68.26.1 | tutoriel:comment_utiliser_mingw32_pour_faire_des_executables_windows [Le 21/08/2024, 21:32] (Version actuelle) – ancienne révision (Le 24/05/2024, 14:08) restaurée Amiralgaby | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | + | {{tag> |
| ---- | ---- | ||
| - | ====== Comment utiliser | + | ====== Comment utiliser |
| + | Il peut arriver que pour certaines raisons l'on souhaite créer des exécutables pour Windows depuis Linux. La solution est d' | ||
| + | MingW est le portage de GCC sur Windows. MinGW est aussi disponible pour Linux. Il sert, sous ce système, à compiler des applications pour Windows. | ||
| - | Il peut arriver que pour certaines raisons l'on souhaite créer des exécutables pour Windows depuis Linux. Il existe une solution : MingW32. MingW s' | + | //Voir [[wpfr> |
| - | Pour suivre ce tutoriel vous devez savoir | + | Pour suivre ce tutoriel vous devez savoir |
| [[tutoriel: | [[tutoriel: | ||
| + | Nous allons uniquement utiliser du C ici, pour du C++ remplacer **gcc** par **g++**. | ||
| + | Plan du tutoriel : | ||
| + | * Code en C à avoir pour la compilation | ||
| + | * Installation de MingW64 | ||
| + | * Compilation | ||
| + | * Exécution du programme créé | ||
| + | * Supplément : faire un make file pour faciliter la commande de build | ||
| - | + | ===== Code à avoir sous la main ===== | |
| - | ===== Installer GCC ===== | + | La première des choses |
| - | + | Si vous n'en avez pas voici un code à copier-coller dans un fichier | |
| - | Si ce n'est pas déjà fait, installez GCC. Il suffit pour cela d'installer (//via// [[: | + | |
| - | ==== Vérification de l'installation ==== | + | |
| - | + | ||
| - | Pour vérifier l' | + | |
| - | + | ||
| - | Copiez-collez le code suivant : | + | |
| <code c> | <code c> | ||
| #include < | #include < | ||
| Ligne 32: | Ligne 35: | ||
| </ | </ | ||
| - | Ouvrez alors un terminal, | + | Vous pouvez compiler le code suivant |
| - | gcc -o bonjour main.c | ||
| - | |||
| - | Faites ensuite : | ||
| - | |||
| - | | ||
| - | |||
| - | Le message : « //Bonjour linuxien !// » apparait. | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== Installer MingW32 ===== | ||
| - | |||
| - | |||
| - | L' | ||
| - | Cela fait, recompilez le programme fait plus haut en remplaçant : | ||
| - | |||
| - | gcc -o bonjour main.c | ||
| - | |||
| - | par | ||
| - | |||
| - | i586-mingw32msvc-gcc -o bonjour.exe main.c | ||
| - | |||
| - | **Note :** //bonjour// a été remplacé par // | ||
| - | |||
| - | Vous venez de créer un exécutable pour Wine | ||
| - | |||
| - | Vous pouvez compiler le code suivant pour vérifier le fonctionnement des appels windows : | ||
| <code c> | <code c> | ||
| #include < | #include < | ||
| Ligne 73: | Ligne 48: | ||
| return 0; | return 0; | ||
| } | } | ||
| - | |||
| </ | </ | ||
| + | ===== Installer le compilateur ===== | ||
| + | ==== Installer MingW32 ==== | ||
| + | Pour compiler en 32 bits, installer la version 64 bits ci-dessous et remplacer tous les « x86_64-w64-mingw32-gcc » par « i686-w64-mingw32-gcc ». | ||
| + | ==== Installer Mingw64 ==== | ||
| + | installer **[[apt> | ||
| - | ===== Code Blocks ===== | + | En ligne de commande cela donne : |
| + | sudo apt install gcc-mingw-w64 | ||
| - | Lien pour le cross compileur (anglais) : http://wiki.codeblocks.org/ | + | ==== Compiler en ligne de commande ==== |
| + | x86_64-w64-mingw32-gcc -o bonjour.exe main.c | ||
| - | ==== Erreur | + | < |
| + | mais ce n'est absolument pas obligatoire sur Linux</ | ||
| - | Vous avez l' | + | TADA ! un bel exécutable fut créé dans le dossier courant, faites |
| + | file bonjour.exe # permet | ||
| - | Allez dans **Settings**-> | + | C'est bel est bien un exécutable Windows s'il possède |
| - | Ensuite allez dans le sous-onglet " | + | Vous venez de créer un exécutable pour Windows. |
| - | Cliquez sur " | + | ==== Le « makefile » ==== |
| - | * /usr/bin | + | [[:make]] est un utilitaire pour " |
| - | * / | + | Sa syntaxe est au premier abord déroutante… |
| - | * / | + | Il permet de grandement simplifier la compilation, |
| - | + | ||
| - | Faites un rebuild et tout devrait être rentré dans l' | + | |
| - | ===== Le « makefile » ===== | + | |
| - | + | ||
| - | Imaginons maintenant un // | + | |
| + | Créons maintenant un fichier // | ||
| <code makefile> | <code makefile> | ||
| - | exe: main.c | + | # Makefile : build exécutable Windows |
| - | gcc -o exe main.c | + | w-exe: main.c |
| + | x86_64-w64-mingw32-gcc -o main.exe main.c | ||
| </ | </ | ||
| - | **Note :** Il y a une tabulation et pas une suite d' | + | **Note :** Il y a une tabulation et pas une suite d' |
| Attention aux logiciels de traitement de texte qui remplacent, par défaut, les tabulations par des espaces. | Attention aux logiciels de traitement de texte qui remplacent, par défaut, les tabulations par des espaces. | ||
| - | Pour l' | + | Pour l' |
| make | make | ||
| - | Il vous suffit de maintenant remplacer « gcc » par « i586-mingw32msvc-gcc » pour que le // | + | ===== Exécuter |
| + | Utilisez [[: | ||
| + | wine main.exe | ||
| + | ===== Problème connus ==== | ||
| + | on accueil vos erreurs sur [[https:// | ||
| ===== Conclusion ===== | ===== Conclusion ===== | ||
| + | Vous pouvez maintenant créer des exécutables Windows depuis Linux : il vous suffit simplement de remplacer lors de vos compilations « gcc » par « x86_64-w64-mingw32-gcc » et « g++ » par « x86_64-w64-mingw32-g++ ». | ||
| - | + | N' | |
| - | Vous pouvez maintenant créer des exécutables Windows depuis Linux : il vous suffit juste de remplacer lors de vos compilations « gcc » par « i586-mingw32msvc-gcc », « g++ » par « i586-mingw32msvc-g++ », etc. | + | |
| - | + | ||
| - | N' | + | |
| ===== Références ====== | ===== Références ====== | ||
| - | + | | |
| - | | + | * [fr] Source : [[http:// |
| - | * Source : [[http:// | + | |
| ---- | ---- | ||
| - | // | + | // |
