MinGW

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 30. marts 2020; checks kræver 4 redigeringer .
MinGW
Type compiler
Udviklere Colin Peters ,  Jan - Jaap van der Heijden ,  Mumit Khan ,  Anders Norlander , Ernie Boyd (  _ _ _ val. Earnie Boyd ) , Dale Henderson ( eng. Dale Handerson ) osv.  
Skrevet i C , C++
Operativ system Microsoft Windows
Første udgave 1. juli 1998 [1]
Hardware platform x86
nyeste version 5.4.2 (11. april 2021 ) ( 2021-04-11 )
Læsbare filformater MinGW Developer Studio Project [d]
Genererede filformater MinGW Developer Studio Project [d]
Licens GNU GPL
Internet side osdn.net/projects/mingw/

MinGW ( Minimalist  GNU for Windows ) , tidligere mingw32  , er et sæt softwareudviklingsværktøjer til at skabe applikationer til Windows [2] . Indeholder en compiler , en indbygget Windows -port i GNU Compiler Collection (GCC) sammen med et sæt frit omdistribuerbare importbiblioteker og header-filer til Windows API . MinGW inkluderer udvidelser til Microsoft Visual C++ Runtime Library for at understøtte C99 [2] funktionalitet . Understøtter C++11-standarden.

Historie

MinGW hed oprindeligt mingw32; tallene blev derefter droppet for at overvinde misforståelsen om, at MinGW er begrænset til 32-bit systemer [3] . Den første udgivelse, skabt af Colin Peters i  1998 , omfattede kun GCC -porten fra Cygwin [4] [5] . Den første indfødte Windows-port i GCC blev skabt af Jan-Jaap van der Heijden, Heijden tilføjede også binutils og gør [4] [5] . Mumit Khan bidrog senere til udviklingen og tilføjede endnu flere Windows-specifikke funktioner til sættet, herunder Win32 header-filer skrevet af Anders Norlander [4] [5] . I 2000 blev projektet flyttet til SourceForge.net for at få mere offentlig støtte og centralisere udviklingen [4] [5] .

I september 2005 blev MinGW valgt som månedens projekt på SourceForge.net [5] .

MinGW-komponenter

MinGW-projektet vedligeholder og distribuerer flere forskellige kernekomponenter og tilføjelsespakker, inklusive forskellige porte i GNU-værktøjskæden såsom GCC og binutils oversat til tilsvarende pakker [3] [6] . Disse hjælpeprogrammer kan bruges fra Windows-kommandolinjen eller integreres i IDE'en .

Derudover giver en MinGW-komponent kendt som MSYS ( Minimal SYStem ) win32-porte i et let Unix-lignende shellmiljø , der inkluderer rxvt og et sæt POSIX - værktøjer, der er tilstrækkelige til at køre autoconf -scripts [7] .

Implementeringer af Win32-header-filer og Win32 -importbiblioteker til runtime-linkning fra start til slut er tilladt [8] , og GNU-porte er tilgængelige under GNU General Public License . Binære builds af den fulde MSYS-pakke og individuelle MinGW GNU-værktøjer er tilgængelige for download fra MinGW-webstedet.

Sammenligning med Cygwin

MinGW gaflet fra Cygwin 1.3.3. Mens både Cygwin og MinGW bruges til at portere Unix-software til Windows, har de en anden tilgang [9] : Cygwins mål er at levere et komplet POSIX -lag (svarende til det, der findes på Linux og andre Unix-systemer) over Windows, hvilket ofrer ydeevnen, hvor nødvendigt for kompatibilitet. Derfor kræver denne tilgang, at Win32-programmer skrevet med Cygwin kører oven på et copyleft -kompatibilitetsbibliotek, der skal distribueres med programmet såvel som med programmets kildekode. Målet med MinGW er at levere indbygget funktionalitet og ydeevne gennem direkte Windows API-kald. I modsætning til Cygwin har MinGW ikke brug for en kompatibilitets- DLL , og programmer skal derfor ikke distribueres med kildekode.

Fordi MinGW bruger Win32 API- kald , kan den ikke levere hele POSIX API; det kan ikke kompilere nogle Unix-applikationer, der kan kompileres med Cygwin. Dette gælder især applikationer, der kræver POSIX-funktionalitet såsom fork(), mmap() eller ioctl() [9] og forventes at køre i et POSIX-miljø. Applikationer skrevet ved hjælp af biblioteker på tværs af platforme såsom SDL , wxWidgets , Qt eller GTK+ har en tendens til at kompilere lettere i MinGW end i Cygwin.

Kombinationen af ​​MinGW og MSYS giver et lille, uafhængigt miljø, der kan startes op på flytbare medier uden behov for at tilføje indgange til registreringsdatabasen. Cygwin giver mere funktionalitet, men er sværere at installere og vedligeholde.

Det er også muligt at krydskompilere Windows - applikationer med MinGW-GCC under POSIX - familiens operativsystemer . Det betyder, at en udvikler ikke behøver at installere Windows med MSYS for at kompilere programmer, der kører under Windows uden Cygwin .

MinGW-w64

På grund af det faktum, at det originale MinGW-projekt ikke lovede, at dets kodebase ville blive opdateret for at tilføje nogle nye nøgleelementer i Win32 API'et, såvel som den mest nødvendige understøttelse af 64-bit arkitektur, blev MinGW-w64- projektet oprettet . Det er en ny ren port af GNU Compiler Collection (GCC) til Microsoft Windows , oprindeligt implementeret af OneVision og udgivet i 2008 [10] til det offentlige domæne ( Public Domain ). Det blev først foreslået til overvejelse for integration med det oprindelige MinGW-projekt, men blev afvist på grund af mistanke om at bruge ikke-fri eller proprietær kode. Af mange alvorlige etiske årsager relateret til MinGW-forfatternes holdning [11] har de ledende udviklere af MinGW-w64-koden besluttet ikke længere at forsøge at samarbejde med MinGW-projektet.

MinGW-w64 giver en mere komplet implementering af Win32 API [12] inklusive:

Noter

  1. Minimalistisk GNU Win32
  2. 1 2 SourceForge.net: MinGW - Minimalist GNU for Windows . Hentet 5. juli 2009. Arkiveret fra originalen 1. juli 2009.
  3. 1 2 Hvad er MinGW? . Dato for adgang: 5. juli 2009. Arkiveret fra originalen 21. november 2008.
  4. 1 2 3 4 MinGW-historie . Hentet 5. juli 2009. Arkiveret fra originalen 14. august 2009.
  5. 1 2 3 4 5 Månedens SourceForge-projekt Arkiveret 23. august 2007.
  6. MinGW-komponenter . Dato for adgang: 5. juli 2009. Arkiveret fra originalen den 29. juni 2009.
  7. MinGW - Minimal SYStem . Dato for adgang: 5. juli 2009. Arkiveret fra originalen 5. januar 2009.
  8. Licensvilkår | MinGW . Hentet 5. juli 2009. Arkiveret fra originalen 4. august 2009.
  9. 1 2 Cygwin | MinGW . Dato for adgang: 5. juli 2009. Arkiveret fra originalen den 28. august 2009.
  10. MinGW-w64-projektets historie (downlink) . MinGW-w64 Wiki . Hentet 30. maj 2013. Arkiveret fra originalen 16. august 2013. 
  11. Harmonisering af mingwrt / w32api med mingw-w64 (downlink) . MinGW postliste . Hentet 30. maj 2013. Arkiveret fra originalen 16. august 2013. 
  12. http://mingw-w64.sourceforge.net/picker.php (downlink) . Hentet 30. maj 2013. Arkiveret fra originalen 16. august 2013. 

Se også

Links