Comment compiler exécutable Pour Windows avec GCC avec sous-système Linux?
Windows 10 Anniversary Update inclut le sous-système Linux Pour Ubuntu. J'ai installé gcc avec sudo apt-get install gcc
.
J'ai écrit un code C simple à des fins de test:
#include <stdio.h>
int main(void){
printf("Hellon");
return 0;
}
Et compilé avec gcc -c main.c
, mais l'exécuter (Linux uniquement) main.o
est généré. Si je l'exécute ./main.o
, il affiche Hello
.
Ma question Est, Comment puis-je compiler main.c
afin que Windows puisse l'exécuter? Fondamentalement, comment générez-vous un fichier *.exe
avec GCC dans le sous-système Linux ?
2 réponses
Le sous-système Linux fonctionne comme un ordinateur Linux. Vous ne pouvez exécuter que des exécutables Linux à l'intérieur et default gcc
crée des exécutables Linux.
Pour créer des exécutables Windows, vous devez installer MinGW cross-compiler:
sudo apt-get install mingw-w64
Ensuite, vous pouvez créer un exécutable Windows 32 bits avec:
i686-w64-mingw32-gcc -o main32.exe main.c
Et exécutable Windows 64 bits avec:
x86_64-w64-mingw32-gcc -o main64.exe main.c
Notez que ces exécutables Windows ne fonctionneront pas à L'intérieur du sous-système Linux, seulement en dehors de celui-ci.
Si vous compilez en utilisant gcc sous linux, il produira un fichier ELF pas un fichier PE (ce que Windows comprend)
Pour compiler un programme pour windows dans linux, vous pouvez utiliser mingw.