【问题标题】:Cross-Compiling C and C++ application in Windows 7, using MinGW under linux在 Windows 7 中交叉编译 C 和 C++ 应用程序,在 linux 下使用 MinGW
【发布时间】:2011-09-16 08:36:06
【问题描述】:

我在 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 中运行此应用程序,而无需重新编译。

【问题讨论】:

  • ELF 和 PE 可执行格式并不是真正相同的二进制格式。
  • MinGW 是否允许交叉编译应用程序?

标签: c++ c windows linux mingw


【解决方案1】:

您需要在这里区分两个系统:build 系统,这是您的编译器运行的系统,以及 host 系统,这是您的可执行文件将运行的系统运行。 MinGW 是宿主系统 Windows 的 GCC 编译器。因此,您可以在 Windows 上为 Windows 编译或在 Linux 上为 Windows 交叉编译。您正在寻找用于构建 Windows 以托管 linux 的交叉编译器,它可能包含在 Cygwin 中。

但是,通常这些东西并没有得到很好的支持,因为 Windows 通常用作最终用户专用系统,而不是用于开发,而 UNIX 系统则用于开发人员。所以,你在这里针对流进行编译,这不是太多人做的事情。

【讨论】:

    【解决方案2】:

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

    这可以使用 Cygwin 完成,它们提供交叉编译器,以便您可以在 Windows 主机上编译 linux 二进制文件。您只需要安装必要的软件包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      • 2010-09-15
      • 1970-01-01
      • 2011-04-18
      相关资源
      最近更新 更多