Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

MinGW

From Wikipedia, the free encyclopedia
Free and open-source software for developing applications in Microsoft Windows
Not to be confused withMingw-w64.
This articlerelies excessively onreferences toprimary sources. Please improve this article by addingsecondary or tertiary sources.
Find sources: "MinGW" – news ·newspapers ·books ·scholar ·JSTOR
(May 2012) (Learn how and when to remove this message)
MinGW
MinGW installation manager
Original author(s)Colin Peters
Developer(s)MinGW Project
Initial releaseJuly 1, 1998; 26 years ago (1998-07-01)
Stable release
GNU BinUtils—2.32-1, Installation Manager—0.6.3, WSL—5.4.2[1] / April 12, 2021; 3 years ago (2021-04-12)
Repositoryosdn.net/projects/mingw/scm/
Written inC,C++
Operating systemMicrosoft Windows,Unix-like (as across compiler)
TypeCompiler
LicensePublic domain (headers),GNU General Public License (compiler and toolchain)
Websiteosdn.net/projects/mingw

MinGW ("Minimalist GNU for Windows"), formerlymingw32, is afree and open sourcesoftware development environment to createMicrosoft Windows applications.

MinGW includes aport of theGNU Compiler Collection (GCC),GNU Binutils for Windows (assembler,linker,archive manager), a set of freely distributable Windows specificheader files andstatic import libraries which enable the use of theWindows API, a Windows native build of theGNU Project'sGNU Debugger, and miscellaneous utilities.

MinGW does not rely onthird-partyCruntimedynamic-link library (DLL) files, and because the runtime libraries are not distributed using theGNU General Public License (GPL), it is not necessary to distribute thesource 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 onLinux (or other Unix), or "cross-native" onCygwin. 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 beenforked with the creation in 2005–2008 of an alternative project calledMingw-w64.

History

[edit]

MinGW was originally called mingw32 ("Minimalist GNU for W32"), following the GNU convention whereby Windows is shortened as "W32".[3][4] The numbers were dropped in order to avoid the implication that it would be limited to producing32-bit binaries. Colin Peters authored the initial release in 1998, consisting only of a Cygwin port of GCC.[5][6] Jan-Jaap van der Heijden created a Windows-native port of GCC and addedbinutils andmake.[5][6] Mumit Khan later took over development, adding more Windows-specific features to the package, including the Windows system headers by Anders Norlander.[5][6] In 2000, the project was moved toSourceForge in order to solicit more assistance from the community and centralize its development.[5][6]

MinGW was selected as Project of the Month at SourceForge for September 2005.[6]

MSYS (a contraction of "Minimal System") was introduced as aBourne 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 toOSDN.[8]

Fork

[edit]

In 2007, a fork of the original MinGW calledMingw-w64 appeared in order to provide support for 64 bits and new APIs. It has since then gained widespread use and distribution.MSYS2 ("minimal system 2") is a software distribution and a development platform forMicrosoft Windows, based on Mingw-w64 andCygwin, that helps to deploy code from theUnix world on Windows.[9]

Programming language support

[edit]

Most languages supported by GCC are supported on the MinGW port as well. These includeC,C++,Objective-C,Objective-C++,Fortran, andAda. The GCC runtime libraries are used (libstdc++ for C++, libgfortran for Fortran, etc.).[citation needed]

MinGW links by default to the Windows OS component libraryMSVCRT, which is the C library thatVisual C++ version 6.0 linked to (the initial target was CRTDLL), which was released in 1998 and therefore does not include support forC99 features, or even all ofC89. While targeting MSVCRT yields programs that require no additional runtime redistributables to be installed, the lack of support for C99 has caused porting problems, particularly whereprintf-style conversion specifiers are concerned. These issues have been partially mitigated by the implementation of a C99 compatibility library,libmingwex, but the extensive work required is far from complete and may never be fully realized.[10]Mingw-w64 has resolved these issues, and provides fully POSIX compliant printf functionality.

Link compatibility

[edit]

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

[edit]

The MinGW project maintains and distributes a number of different core components and supplementary packages, including various ports of theGNU toolchain, such asGCC andbinutils, translated into equivalent packages.[12][13] These utilities can be used from theWindows command line or integrated into anIDE. Packages may be installed using the command line via mingw-get.[14]

MinGW supports dynamic libraries named according to the<name>.lib and<name>.dll conventions, as well as static libraries following thelib<name>.a naming convention common on Unix and Unix-like systems.

In addition, a component of MinGW known asMSYS (minimal system) provides Windows ports of a lightweight Unix-likeshell environment includingrxvt and a selection ofPOSIX tools sufficient to enableautoconf scripts to run,[15] but it does not provide a C compiler or acase-sensitive file system.[16]

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 interactiveBourne 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 apermissive license,[18] while the GNU ports are provided under theGNU General Public License. Binary downloads of both the complete MSYS package and individual MinGW GNU utilities are available from the MinGW site.

Comparison with Cygwin

[edit]

Although both Cygwin and MinGW can be used to port Unix software to Windows, they have different approaches:[19] Cygwin aims to provide a completePOSIX layer comprising a full implementation of all major Unix system calls and libraries. Compatibility is considered a higher priority than performance. On the other hand, MinGW's priorities are simplicity and performance. As such, it does not provide certainPOSIX APIs which cannot easily be implemented using the Windows API, such asfork(),mmap() andioctl().[19] Applications written using across-platform library that has itself been ported to MinGW, such asSDL,wxWidgets,Qt, orGTK, will usually compile as easily in MinGW as they would in Cygwin.

Windows programs written with Cygwin run on top of acopylefted compatibilityDLL that must be distributed with the program, unless statically linked. If dynamically linked, the program must also provide information on where to obtain Cygwin source. MinGW does not require acompatibility layer, since MinGW-based programs are compiled with direct calls to Windows APIs.

The combination of MinGW and MSYS provides a small, self-contained environment that can be loaded onto removable media without leaving entries in theregistry or files on the computer.

It is also possible tocross-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

[edit]

References

[edit]
  1. ^"Download Package list".osdn.net. Retrieved2023-02-04.
  2. ^"(MinGW on) MinGW".MinGW.org/wiki. 2008-07-07. Archived fromthe original on 2013-10-06. Retrieved2013-10-16.
  3. ^"GNU Coding Standards".gnu.org. Free Software Foundation. April 27, 2013. 5.5 Portability between System Types. RetrievedJuly 1, 2013.
  4. ^Stallman, Richard (2000-09-18)."Libtool Re: Naming a project gnu-win32?".libtool (Mailing list). Retrieved2013-05-21.
  5. ^abcd"History | MinGW". MinGW.org. Archived fromthe original on 2012-08-23. Retrieved2012-07-09.
  6. ^abcde"(sourceforge's) Project of the Month". SourceForge.net. 2005-08-31. Retrieved2012-07-09.
  7. ^"(wiki:) MSYS". MinGW.org. Archived fromthe original on 2006-08-28. Retrieved2020-04-16.MSYS, a contraction of "Minimal SYStem", is a Bourne Shell command line interpreter system.
  8. ^"Announcement of migration to OSDN.net".Mingw-users (Mailing list). January 21, 2018.
  9. ^MSYS2:official homepage,code repository
  10. ^"(MinGW And) C99".MinGW.org/wiki. 2010-06-21. Archived fromthe original on 2011-05-20. Retrieved2011-03-29.
  11. ^"Interoperability of Libraries Created by Different Compiler Brands | MinGW".mingw.org. Archived fromthe original on 2010-06-12.
  12. ^"(MinGW) FAQ". MinGW.org. Archived fromthe original on 2008-11-21. Retrieved2012-07-09.
  13. ^"MinGW - Minimalist GNU for Windows". Sourceforge.net. Retrieved2012-07-09.
  14. ^"MinGW Command Line Interface Installer". Archived fromthe original on 15 June 2012. Retrieved14 June 2012.
  15. ^"(wiki:) MSYS". MinGW.org. Archived fromthe original on 2016-02-18. Retrieved2016-02-18.
  16. ^"(wiki:) MSYS". MinGW.org. Archived fromthe original on 2016-02-18. Retrieved2016-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.
  17. ^"(wiki:) mingwPORT". MinGW.org. Archived fromthe original on 2012-07-23. Retrieved2012-07-09.
  18. ^"(MinGW) Licensing Terms". MinGW.org. Archived fromthe original on 2009-08-04. Retrieved2012-07-09.
  19. ^ab"(MinGW:) About Cygwin". MinGW.org. Archived fromthe original on 2009-08-28. Retrieved2012-07-09.

External links

[edit]
People
Projects
UnixWindows interoperability
Unix-like subsystems
Development environments and shells
Ports of Unix-like utilities for Windows
Windows runtime environments for*nix
Platform virtualization software
Related
Retrieved from "https://en.wikipedia.org/w/index.php?title=MinGW&oldid=1269571441"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp