12

MSYS 和类 UNIX 构建系统分开;Mingw为什么存在?我的意思是,为什么 win32/64 不只是“香草 GCC”中可用的另一个目标?这有技术原因还是“政治”?在我看来,Windows 平台并没有什么特别之处可以使 GCC 移植到它与原始 GCC“不兼容”。

4

4 回答 4

7

Mingw 不仅仅是编译器——它也是库和头文件(以及您可能需要的任何其他支持文件)。

GCC 只是一个编译器。Mingw 是一个完整的环境。

于 2009-08-17T10:29:51.080 回答
3

MingW 旨在允许将 Posix 应用程序轻松移植到 Windows。它只是一个比 CygWin 更“薄”的层,所以不是所有的东西都可以在窗口太不同的地方工作。CygWin 允许提供足够的绝缘性,甚至可以运行构建和生成代码的脚本工具。

编辑:微软非常喜欢制定自己的标准,并希望将自己的品牌放在已经存在开放标准的事物上。即OpenGL -> DirectX,Java -> .net,OpenCL 是他们想要摒弃的下一个标准。这让他们对于非赞助项目来支持他们作为目标有点痛苦。他们总是拒绝任何允许轻松跨平台开发的东西,因为他们只希望您为那里的操作系统开发应用程序。这是一种营销策略,控制品牌,控制平台,让人们支持其他操作系统变得痛苦。MingW 是必需的,因为 GCC 可以生成 x86 代码,但即使是最基本的运行时支持也不同于基于 Posix 的操作系统。

于 2009-08-17T10:40:02.840 回答
2

好吧,虽然您可以使用交叉编译器从 GCC 生成 win32/64 二进制代码,但必须有人移植所有 C 运行时库。Mingw 和 Cygwin 都是为此目的而创建的。

于 2009-08-17T10:30:08.380 回答
0

来自 MinGW 的主站点

该套件以易于安装的二进制包格式提供,用于 MS-Windows 上的本机部署,或用户从源代码构建,用于在 Unix 或 GNU/Linux 上跨主机使用,该套件利用 Microsoft 的标准系统 DLL 来提供 C-Runtime 和 Windows API。

于 2009-08-17T10:46:43.667 回答