在 Windows 7 中交叉编译 C 和 C++ 应用程序,在 linux 下使用 MinGW
Posted
技术标签:
【中文标题】在 Windows 7 中交叉编译 C 和 C++ 应用程序,在 linux 下使用 MinGW【英文标题】:Cross-Compiling C and C++ application in Windows 7, using MinGW under linux 【发布时间】: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 是否允许交叉编译应用程序? 【参考方案1】:您需要在这里区分两个系统:build 系统,这是您的编译器运行的系统,以及 host 系统,这是您的可执行文件将运行的系统运行。 MinGW 是宿主系统 Windows 的 GCC 编译器。因此,您可以在 Windows 上为 Windows 编译或在 Linux 上为 Windows 交叉编译。您正在寻找用于构建 Windows 以托管 linux 的交叉编译器,它可能包含在 Cygwin 中。
但是,通常这些东西并没有得到很好的支持,因为 Windows 通常用作最终用户专用系统,而不是用于开发,而 UNIX 系统则用于开发人员。所以,你在这里针对流进行编译,这不是太多人做的事情。
【讨论】:
【参考方案2】:我不认为 MinGW 提供任何能够生成 linux 二进制文件的交叉编译器。
这可以使用 Cygwin 完成,它们提供交叉编译器,以便您可以在 Windows 主机上编译 linux 二进制文件。您只需要安装必要的软件包。
【讨论】:
以上是关于在 Windows 7 中交叉编译 C 和 C++ 应用程序,在 linux 下使用 MinGW的主要内容,如果未能解决你的问题,请参考以下文章
从 Mac 为 Windows、Linux 交叉编译 C++/QT [关闭]