Windows 10周年更新包括适用于Ubuntu的Linux子系统.我安装了gcc sudo apt-get install gcc
.
我为测试目的写了一些简单的C代码:
#includeint main(void){ printf("Hello\n"); return 0; }
并编译它,gcc -c main.c
但生成了执行(仅限Linux)main.o
.如果我运行它./main.o
,它会显示出来Hello
.
我的问题是,如何编译main.c
以便Windows可以运行它?基本上,如何*.exe
在Linux子系统中使用GCC 生成文件?
Linux子系统用作Linux计算机.您只能在其中运行Linux可执行文件,并且默认gcc
创建Linux可执行文件.
要创建Windows可执行文件,您需要安装mingw交叉编译器:
sudo apt-get install mingw-w64
然后,您可以创建32位Windows可执行文件:
i686-w64-mingw32-gcc -o main32.exe main.c
和64位Windows可执行文件:
x86_64-w64-mingw32-gcc -o main64.exe main.c
请注意,这些Windows可执行文件在Linux子系统内部不起作用,仅在其外部.
如果你在linux上使用gcc进行编译,它将产生一个ELF文件而不是PE(windows懂的)文件
要在linux中编译windows程序,你可以使用mingw.