MinGW

（），又称，是将GCC编译器和GNU Binutils移植到平台下的产物，包括一系列头文件（Win32API）、函式庫和可执行文件。

另有可用于产生32位及64位可执行文件的MinGW-w64项目，是从原本产生的分支。如今已经独立发展。

历史
MinGW是从Cygwin（1.3.3版）基础上发展而来。

编程语言支持
GCC支援的語言大多在MinGW也受支援，其中涵蓋C、C++、Objective-C、Fortran及Ada。

对于C语言之外的语言，MinGW使用标准的GNU运行时库，如C++使用GNU libstdc++。

但是MinGW使用Windows中的C运行时库。因此用MinGW开发的程序不需要额外的第三方DLL支持就可以直接在Windows下运行，而且也不一定必须遵从GPL许可证。这同时造成了MinGW开发的程序只能使用Win32API和跨平台的第三方库，而缺少POSIX支持，大多数GNU软件无法在不修改源代码的情况下用MinGW编译。

组件
MinGW支持根据<name>.lib和<name>.dll命名的动态库，以及遵循Unix和类Unix系统中常见的lib<name>.a命名约定的静态库。

此外，MinGW的一个被称为MSYS(最小系统)的组件提供了一个轻量级类Unix shell环境的Windows端口，包括和一些足以使autoconf脚本运行的POSIX工具，但它不提供C编译器或区分大小写的文件系统。

与Cygwin比较
Cygwin 與 MinGW 皆可用來移植 Unix 软件到 Windows，但它们采用截然不同的實作。Cygwin 旨在提供一个完整的 POSIX 层，包括主流 Unix 的系統呼叫及函式庫實作；其重视兼容性优先于性能。相對的，MinGW 則着重简化与性能。因此，它並不提供某些難以用 Windows API 实现的 POSIX API，例如 fork()，mmap() 和 ioctl()。使用跨平台函式庫寫成的應用程式，若函式庫本身已移植到了 MinGW（例如 SDL、wxWidgets、Qt 或 GTK+），則那些應用程式通常也容易用 MinGW 編譯。

用 Cygwin 寫成的 Windows 程序，因為是執行在公共版權的兼容 DLL 上，所以 DLL 必須隨著程序源代碼一起發布。MinGW 則不需要兼容层，因為基於 MinGW 的程序是直接调用 Windows API 编译的。

MinGW 搭配 MSYS 可以產生一個小卻完整的執行環境，讓程式可以-{zh-tw:載入;zh-cn:装入}-隨身裝置當中，而不需要修改注册表或產生額外檔案。

在 POSIX 系統下，用 MinGW-GCC 交叉編譯 Windows 應用程式也是可行的。這意味著開發者不需要安裝 Windows 與 MSYS 就能編譯 Windows 軟件，或 Windows+Cygwin 軟件。

异常机制
MinGW编译器在实现异常机制时，有三种可选方式：
SJLJ (setjmp/longjmp)：可用于32/64位，但不是零代价的：即使不抛出异常，仍会有一定的性能损失（在最差情形下~15%）。
DWARF (DW2, dwarf-2)：只能用于32位，没有永久的运行时开销，需要呼叫堆疊是dwarf-enabled，这意味着异常对于Windows system DLLs或Visual Studio编译的DLLs的异常不能被抛出。
SEH：零開销。

MinGW-w64

MinGW-w64是2005年由OneVision Software根据-{zh-tw:淨室設計原則;zh-cn:洁净室设计原则}-而独立开发，以解决当时的MinGW项目更新缓慢，缺少新的重要的API以及64位支持。2008年MinGW-w64项目开源，由Kai Tietz维护。
  提供由MinGW-Builds等项目组制作的预编译版。编译器分64位版和32位版、分别包含sjlj、drawf、seh异常处理机制、分别支持POSIX线程模式或Win32线程模式。用户可根据需要下载不同版本。例如，64位的seh、POSIX线程的最新稳定版本的gcc套件的下载目录为：Toolchains targetting Win64 → Personal Builds → mingw-builds → 7.3.0 → threads-posix → seh

非官方编译器集成安装包
很多非官方组织提供了包含一系列整合工具链的MinGW安装包。其中大部分基于MinGW-w64项目。
 TDM-MinGW GCC  MinGW编译器安装包，集成了32位、64位的GCC 5.1.0 c/c++/fortran编译器等。
 64位Win32线程模式 。特色是包含很多第三方库，如boost、libpng、zlib、coreutils、grep、make、w32api、sed、git等等；且为最新的GCC版本。 
 MinGW package installer from Equation.com  该网站提供了32位和64位的GCC以及nightly snapshot版本的安装包，以及gdb的nightly snapshot安装包。
 MinGW-w64 - for 32 and 64 bit Windows  最新的nightly snapshot的编译后的软件。但似乎没有集成iconv? 

参见

 Cygwin
 POSIX

 参考资料 

 外部链接 
 MinGW 官方网站 

Category:1998年软件
Category:C編譯器
Category:C++編譯器
Category:Fortran编译器
Category:交叉编译器
Category:自由編譯器與直譯器
Category:公有领域软件