在Windows 7下使用Linux下的MinGW进行交叉编译C和C++应用程序

3
我已在Windows 7中安装了MinGW编译器。GCC版本为4.6.1。
我有一个Hello World应用程序:
#include <stdio.h>

int main( int argc, char* argv[] )
{
    printf( "Hello World!" );
    return 0;
}

如何在 Windows 7 下使用 MinGW 编译器编译此应用程序,以便在 Linux 上运行此应用程序而无需重新编译。

4
ELF和PE可执行文件格式并不是完全相同的二进制格式。 - Benoit
MinGW允许交叉编译应用程序吗? - G-71
2个回答

3

我认为MinGW没有提供任何能够生成Linux二进制文件的交叉编译器。

使用Cygwin可以实现这一点,它们提供了交叉编译器,使您可以在Windows主机上编译Linux二进制文件。您只需要安装必要的软件包即可。


3
你需要区分两个系统:编译系统(build system)是你的编译器运行的系统,主机系统(host system)是你的可执行文件将要运行的系统。MinGW 是用于 Windows 主机系统的 GCC 编译器。因此,你可以在 Windows 上为 Windows 进行编译,或者在 Linux 上进行交叉编译以用于 Windows。你正在寻找一个用于构建 Windows 并在主机 Linux 上运行的交叉编译器,这可能包含在 Cygwin 中。
然而,通常此类事情得不到很好的支持,因为 Windows 通常只用作终端用户系统,而 UNIX 系统则用于开发人员。所以,你正在逆流而上地编译,这不是太多人所做的事情。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接