MinGW | |
---|---|
Sorts | kompilator |
Utvecklare | Colin Peters , Jan - Jaap van der Heijden , Mumit Khan , Anders Norlander , Ernie Boyd ( _ _ _ val. Earnie Boyd ) , Dale Henderson ( eng. Dale Handerson ) mfl. |
Skrivet i | C , C++ |
Operativ system | Microsoft Windows |
Första upplagan | 1 juli 1998 [1] |
Hårdvaruplattform | x86 |
senaste versionen | 5.4.2 (11 april 2021 ) |
Läsbara filformat | MinGW Developer Studio Project [d] |
Genererade filformat | MinGW Developer Studio Project [d] |
Licens | GNU GPL |
Hemsida | osdn.net/projects/mingw/ |
MinGW ( Minimalist GNU for Windows ) , tidigare mingw32 , är en uppsättning mjukvaruutvecklingsverktyg för att skapa applikationer för Windows [2] . Inkluderar en kompilator , en inbyggd Windows- port i GNU Compiler Collection (GCC) tillsammans med en uppsättning fritt omdistribuerbara importbibliotek och rubrikfiler för Windows API . MinGW inkluderar tillägg till Microsoft Visual C++ Runtime Library för att stödja C99 [2] funktionalitet . Stöder C++11-standarden.
MinGW hette ursprungligen mingw32; siffrorna släpptes sedan för att övervinna missuppfattningen att MinGW är begränsad till 32-bitars system [3] . Den första utgåvan, skapad av Colin Peters 1998 , inkluderade endast GCC- porten från Cygwin [4] [5] . Den första inbyggda Windows-porten i GCC skapades av Jan-Jaap van der Heijden, Heijden lade också till binutils och gör [4] [5] . Mumit Khan bidrog senare till utvecklingen och lade till ännu fler Windows-specifika funktioner till kitet, inklusive Win32 header-filer skrivna av Anders Norlander [4] [5] . År 2000 flyttades projektet till SourceForge.net för att få mer offentligt stöd och centralisera utvecklingen [4] [5] .
I september 2005 valdes MinGW till Månadens projekt på SourceForge.net [5] .
MinGW-projektet underhåller och distribuerar flera olika kärnkomponenter och tilläggspaket, inklusive olika portar i GNU-verktygskedjan såsom GCC och binutils översatta till motsvarande paket [3] [6] . Dessa verktyg kan användas från Windows kommandorad eller integreras i IDE .
Dessutom tillhandahåller en MinGW-komponent känd som MSYS ( Minimal SYStem ) win32-portar i en lätt Unix-liknande skalmiljö som inkluderar rxvt och en uppsättning POSIX - verktyg som är tillräckliga för att köra autoconf- skript [7] .
Implementeringar av Win32-huvudfiler och Win32- importbibliotek för körtidslänkning från början till slut är tillåtet licensierade [8] , och GNU-portar är tillgängliga under GNU General Public License . Binära versioner av hela MSYS-paketet och individuella MinGW GNU-verktyg är tillgängliga för nedladdning från MinGW-webbplatsen.
MinGW gaffel från Cygwin 1.3.3. Även om både Cygwin och MinGW används för att porta Unix-programvara till Windows, tar de ett annat tillvägagångssätt [9] : Cygwins mål är att tillhandahålla ett fullständigt POSIX- lager (liknande det som finns på Linux och andra Unix-system) över Windows, vilket offra prestanda där nödvändig för kompatibilitet. Följaktligen kräver detta tillvägagångssätt att Win32-program skrivna med Cygwin körs ovanpå ett copyleft -kompatibilitetsbibliotek som måste distribueras med programmet, såväl som med programmets källkod. Målet med MinGW är att tillhandahålla inbyggd funktionalitet och prestanda genom direkta Windows API-anrop. Till skillnad från Cygwin behöver MinGW inte en kompatibilitets- DLL och därför krävs inte att program distribueras med källkod.
Eftersom MinGW använder Win32 API- anrop kan den inte tillhandahålla hela POSIX API; det kan inte kompilera vissa Unix-applikationer som kan kompileras med Cygwin. I synnerhet gäller detta applikationer som kräver POSIX-funktionalitet som fork(), mmap() eller ioctl() [9] och förväntas köras i en POSIX-miljö. Applikationer skrivna med plattformsoberoende bibliotek som SDL , wxWidgets , Qt eller GTK+ tenderar att kompileras lättare i MinGW än i Cygwin.
Kombinationen av MinGW och MSYS ger en liten, oberoende miljö som kan startas upp på flyttbara media utan att behöva lägga till poster i registerfiler. Cygwin ger mer funktionalitet men är svårare att installera och underhålla.
Det är också möjligt att korskompilera Windows - applikationer med MinGW-GCC under POSIX - familjens operativsystem . Detta innebär att en utvecklare inte behöver installera Windows med MSYS för att kompilera program som körs under Windows utan Cygwin .
På grund av det faktum att det ursprungliga MinGW-projektet inte lovade att dess kodbas skulle uppdateras för att lägga till några nya nyckelelement i Win32 API, såväl som det mest nödvändiga stödet för 64-bitars arkitektur, skapades MinGW-w64- projektet . Det är en ny ren port av GNU Compiler Collection (GCC) för Microsoft Windows , ursprungligen implementerad av OneVision och släpptes 2008 [10] till den offentliga domänen ( Public Domain ). Det föreslogs först för övervägande för integration med det ursprungliga MinGW-projektet, men avslogs på grund av misstanken om att använda icke-fri eller proprietär kod. Av många allvarliga etiska skäl relaterade till MinGW-författarnas attityd [11] har de ledande utvecklarna av MinGW-w64-koden beslutat att inte längre försöka samarbeta med MinGW-projektet.
MinGW-w64 tillhandahåller en mer komplett implementering av Win32 API [12] inklusive: