MinGW

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 30 mars 2020; kontroller kräver 4 redigeringar .
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 ) ( 2021-04-11 )
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.

Historik

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-komponenter

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.

Jämförelse med Cygwin

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 .

MinGW-w64

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:

Anteckningar

  1. Minimalistisk GNU Win32
  2. 1 2 SourceForge.net: MinGW - Minimalistisk GNU för Windows . Hämtad 5 juli 2009. Arkiverad från originalet 1 juli 2009.
  3. 1 2 Vad är MinGW? . Tillträdesdatum: 5 juli 2009. Arkiverad från originalet den 21 november 2008.
  4. 1 2 3 4 MinGW-Historia . Hämtad 5 juli 2009. Arkiverad från originalet 14 augusti 2009.
  5. 1 2 3 4 5 Månadens SourceForge-projekt Arkiverad 23 augusti 2007.
  6. MinGW-komponenter . Tillträdesdatum: 5 juli 2009. Arkiverad från originalet 29 juni 2009.
  7. MinGW - Minimal SYStem . Tillträdesdatum: 5 juli 2009. Arkiverad från originalet 5 januari 2009.
  8. Licensvillkor | MinGW . Hämtad 5 juli 2009. Arkiverad från originalet 4 augusti 2009.
  9. 1 2 Cygwin | MinGW . Tillträdesdatum: 5 juli 2009. Arkiverad från originalet 28 augusti 2009.
  10. MinGW-w64-projektets historia (nedlänk) . MinGW-w64 Wiki . Hämtad 30 maj 2013. Arkiverad från originalet 16 augusti 2013. 
  11. Harmonisering av mingwrt / w32api med mingw-w64 (nedlänk) . MinGW e-postlista . Hämtad 30 maj 2013. Arkiverad från originalet 16 augusti 2013. 
  12. http://mingw-w64.sourceforge.net/picker.php (nedlänk) . Hämtad 30 maj 2013. Arkiverad från originalet 16 augusti 2013. 

Se även

Länkar