MinGW、MinGW-w64和MinGW-builds有什么区别?

66

MinGWMinGW-w64MinGW-builds之间有什么区别?

在Windows 8机器上使用Eclipse IDE编译C ++ 11源代码时,我应该使用哪个?


MinGW-builds现在在其sourceforge页面上发布了以下说明:“项目已加入MinGW-W64,新的构建将在MinGW-W64(https://sourceforge.net/projects/mingw-w64)网站上提供。” - G. Stevens
2个回答

61

MinGW是Windows操作系统上的GCC移植版。它不支持所有的Windows API(但对于许多程序来说,支持的内容已经足够),并且仅适用于32位程序(虽然有些可以在64位Windows上运行,但有些无法运行,并且无法将它们编译为64位)。

MinGW-w64是一个改进版本,支持32位和64位,并且支持更多的WinAPI(尽管仍然不支持所有的,因为那是很费力的工作,但比MinGW支持的多)。

MinGW-w64仅提供源代码,而没有二进制文件可供“只需使用”编译器。

MinGW-builds是一个相对独立的项目,提供了最有用配置的二进制文件。如果需要特定的MinGW-w64版本,手动编译仍然是可能的。

如果不需要任何异常情况,则使用MinGW-builds自安装程序是最简单的方法。此外,这里提供了自安装程序的帮助。


9
Mingw-w64在修复漏洞方面也有着更好的记录。 - M.M
1
请参见:https://github.com/msys2/MINGW-packages/issues/2282 - Felipe G. Nievinski

1
Mingw将您的代码编译为在Windows下运行的Windows二进制文件。
Windows子系统Linux(WSL)生成Linux二进制文件。您可以在WSL下安装其他Linux程序,除非您需要图形界面。您可以从WSL访问Windows文件系统,但反之则不行。
Cygwin生成可以在Windows中运行的Windows二进制文件,只要您拥有Cygwin DLL并且不在Cygwin shell之外。这提供了一个类似于Linux的环境,完全兼容Windows。

5
"Mingw-w64 生成的 Linux 二进制文件无法在 Mingw-w64 外的 Windows 中运行。" 错误。独立的 MinGW[-w64] 工具集和作为 MSYS[2] 的一部分安装的工具集都能够创建本地的 Windows 二进制文件,可以正常在 MinGW (或 MSYS) shell 之外运行。(使用 -static 进行链接可帮助处理未在 PATH 上的 DLL,而对于 MSYS2,msys-2.dll 也必须是可访问的。) - Sz.

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