MinGW
Original author(s) | Colin Peters |
---|---|
Developer(s) | MinGW Project |
Initial release | July 1, 1998 |
Stable release | GNU BinUtils—2.32-1, Installation Manager—0.6.3, WSL—5.4.2[1]
/ April 12, 2021 |
Written in | C, C++ |
Operating system | Microsoft Windows, Unix-like (as a cross compiler) |
Type | Compiler |
License | Public domain (headers), GNU General Public License (compiler and toolchain) |
Website | osdn |
MinGW ("Minimalist GNU for Windows"), formerly mingw32, is a free and open source software development environment to create Microsoft Windows applications.
MinGW includes a
MinGW does not rely on third-party C runtime dynamic-link library (DLL) files, and because the runtime libraries are not distributed using the GNU General Public License (GPL), it is not necessary to distribute the source code with the programs produced, unless a GPL library is used elsewhere in the program.[2]
MinGW can be run either on the native Microsoft Windows platform, cross-hosted on Linux (or other Unix), or "cross-native" on Cygwin. Although programs produced under MinGW are 32-bit executables, they can be used both in 32 and 64-bit versions of Windows.
The development of the MinGW project has been
History
MinGW was originally called mingw32 ("Minimalist GNU for W32"), following the GNU convention whereby Windows is shortened as "W32".
MinGW was selected as Project of the Month at SourceForge for September 2005.[6]
MSYS (a contraction of "Minimal System") was introduced as a Bourne shell command line interpreter system[7] with the aim of better interoperability with native Windows software.
In 2018, following a disagreement with SourceForge about the administration of its mailing lists, MinGW migrated to OSDN.[8]
Fork
In 2007, a fork of the original MinGW called
Programming language support
Most languages supported by GCC are supported on the MinGW port as well. These include
MinGW links by default to the Windows OS component library
Link compatibility
Binaries (executables or DLLs) generated with different C++ compilers (like MinGW and Visual Studio) are in general not link compatible. However, compiled C code is link compatible.[11]
Components
The MinGW project maintains and distributes a number of different core components and supplementary packages, including various ports of the
MinGW supports dynamic libraries named according to the <name>.lib
and <name>.dll
conventions, as well as static libraries following the lib<name>.a
naming convention common on Unix and Unix-like systems.
In addition, a component of MinGW known as MSYS (minimal system) provides Windows ports of a lightweight Unix-like
mingwPORTs are user contributed additions to the MinGW software collection. Rather than providing these "add-ons" as precompiled binary packages, they are supplied in the form of interactive Bourne shell scripts, which guide the end user through the process of automatically downloading and patching original source code, then building and installing it. Users who wish to build any application from a mingwPORT must first install both MinGW and MSYS.[17]
The implementation of Windows system headers and static import libraries are released under a
Comparison with Cygwin
Although both Cygwin and MinGW can be used to port Unix software to Windows, they have different approaches:
Windows programs written with Cygwin run on top of a
The combination of MinGW and MSYS provides a small, self-contained environment that can be loaded onto removable media without leaving entries in the registry or files on the computer.
It is also possible to cross-compile Windows applications with MinGW-GCC under POSIX systems. This means that developers do not need a Windows installation with MSYS to compile software that will run on Windows with or without Cygwin.
See also
References
- ^ "Download Package list". osdn.net. Retrieved 2023-02-04.
- ^ "(MinGW on) MinGW". MinGW.org/wiki. 2008-07-07. Archived from the original on 2013-10-06. Retrieved 2013-10-16.
- ^ "GNU Coding Standards". gnu.org. Free Software Foundation. April 27, 2013. 5.5 Portability between System Types. Retrieved July 1, 2013.
- ^ Stallman, Richard (2000-09-18). "Libtool Re: Naming a project gnu-win32?". libtool (Mailing list). Retrieved 2013-05-21.
- ^ a b c d "History | MinGW". MinGW.org. Archived from the original on 2012-08-23. Retrieved 2012-07-09.
- ^ a b c d e "(sourceforge's) Project of the Month". SourceForge.net. 2005-08-31. Retrieved 2012-07-09.
- ^ "(wiki:) MSYS". MinGW.org. Archived from the original on 2006-08-28. Retrieved 2020-04-16.
MSYS, a contraction of "Minimal SYStem", is a Bourne Shell command line interpreter system.
- ^ "Announcement of migration to OSDN.net". Mingw-users (Mailing list). January 21, 2018.
- ^ MSYS2: official homepage, code repository
- ^ "(MinGW And) C99". MinGW.org/wiki. 2010-06-21. Archived from the original on 2011-05-20. Retrieved 2011-03-29.
- ^ "Interoperability of Libraries Created by Different Compiler Brands | MinGW". mingw.org. Archived from the original on 2010-06-12.
- ^ "(MinGW) FAQ". MinGW.org. Archived from the original on 2008-11-21. Retrieved 2012-07-09.
- ^ "MinGW - Minimalist GNU for Windows". Sourceforge.net. Retrieved 2012-07-09.
- ^ "MinGW Command Line Interface Installer". Archived from the original on 15 June 2012. Retrieved 14 June 2012.
- ^ "(wiki:) MSYS". MinGW.org. Archived from the original on 2016-02-18. Retrieved 2016-02-18.
- ^ "(wiki:) MSYS". MinGW.org. Archived from the original on 2016-02-18. Retrieved 2016-02-18.
A common misunderstanding is MSYS is "UNIX on Windows", MSYS by itself does not contain a compiler or a C library, [...] nor does it provide any UNIX specific functionality like case-sensitive filenames.
- ^ "(wiki:) mingwPORT". MinGW.org. Archived from the original on 2012-07-23. Retrieved 2012-07-09.
- ^ "(MinGW) Licensing Terms". MinGW.org. Archived from the original on 2009-08-04. Retrieved 2012-07-09.
- ^ a b "(MinGW:) About Cygwin". MinGW.org. Archived from the original on 2009-08-28. Retrieved 2012-07-09.
External links
- Official MinGW website
- Official software repository in OSDN
- nuwen 64-bit MinGW distro - maintained by a Microsoft employee
- MXE - Makefiles to build MinGW on Unix and many common dependencies libraries, pre-built packages available