当前位置:  开发笔记 > 编程语言 > 正文

如何使用带有Linux子系统的GCC编译Windows的可执行文件?

如何解决《如何使用带有Linux子系统的GCC编译Windows的可执行文件?》经验,为你挑选了2个好方法。

Windows 10周年更新包括适用于Ubuntu的Linux子系统.我安装了gcc sudo apt-get install gcc.

我为测试目的写了一些简单的C代码:

#include 
int main(void){
    printf("Hello\n");
    return 0;
}

并编译它,gcc -c main.c但生成了执行(仅限Linux)main.o.如果我运行它./main.o,它会显示出来Hello.

我的问题是,如何编译main.c以便Windows可以运行它?基本上,如何*.exe在Linux子系统中使用GCC 生成文件?



1> Markus Laire..:

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子系统内部不起作用,仅在其外部.



2> 小智..:

如果你在linux上使用gcc进行编译,它将产生一个ELF文件而不是PE(windows懂的)文件

要在linux中编译windows程序,你可以使用mingw.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有