MinGW or Mingw32 (Minimalist GNU for Windows) is a software port of the GNU toolchain to the Win32 platform. It was originally a fork of Cygwin (version 1.3.3).
MinGW includes a set of Windows header files (W32API) for native Win32 development.
MSYS
MinGW is often used together with
MSYS (Minimal SYStem), another package based on
Cygwin that provides a lightweight shell environment supporting enough
POSIX functionality to enable
configure scripts to run.
It is also possible to use MSYS by itself as a replacement for the built-in Windows shell.
MinGW vs. Cygwin
It is hard to compare the two directly, since their goals are somewhat different: Cygwin aims to provide a complete
POSIX layer (similar to that found in a Linux or other Unix system) on top of Windows, sacrificing performance where necessary for compatibilty, while MinGW aims to provide only a free compiler and toolchain, prioritizing performance. Both are used to port Unix software to Windows, however.
Unlike Cygwin, MinGW does not require a compatibility layer DLL and its runtime is licensed as a permissive license.
The combination of MinGW and MSYS provides a small, self-contained environment that can be loaded on to removable media without leaving entries in the registry or leaving files on the computer. Cygwin includes more functionality, but is more complicated to install and maintain.
Since MinGW does not provide a POSIX API, it is unable to compile many Unix applications that can be compiled with Cygwin. This is not so great a disadvantage as it may sound, since it only applies to applications that require specific POSIX functionality, or expect to be run in a POSIX environment. Applications written using platform-independent libraries, such as SDL, wxWidgets, or Qt, will usually compile as easily in MinGW as in Cygwin.
Pronunciation
No standard has been decided for the pronunciation of
MinGW. Common pronunciations include "
ming wee", "
min gee double-u", "
ming double-u" or "
min gnu".
Cross compilation
It is also possible to
cross-compile applications with MinGW. This means that you do not need a Windows installation with MSYS to compile software for Windows.
xmingw is a port of MinGW to
Linux. On
FreeBSD it's possible to install the
devel/mingw32-gcc package from the
Ports collection.
Running ./configure --host=mingw32 will set up an autoconf package for cross compilation.
See also
Notes
- Earnie Boyd - "Re: How do you pronounce MinGW?", December 18, 2002 post on mingw-users mailing list.
- Soren Andersen - "Re: How do you pronounce MinGW?", December 18, 2002 post on mingw-users mailing list.
External links
Compilers
MinGW | MinGW | MinGW | MinGW | MinGW | MinGW | MinGW