MinGW

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 30. března 2020; kontroly vyžadují 4 úpravy .
MinGW
Typ kompilátor
Vývojáři Colin Peters ,  Jan - Jaap van der Heijden ,  Mumit Khan ,  Anders Norlander , Ernie Boyd (  _ _ _ val. Earnie Boyd ) , Dale Henderson ( angl. Dale Handerson ) atd.  
Zapsáno v C , C++
Operační systém Microsoft Windows
První vydání 1. července 1998 [1]
Hardwarová platforma x86
Nejnovější verze 5.4.2 (11. dubna 2021 ) ( 2021-04-11 )
Čitelné formáty souborů Projekt MinGW Developer Studio [d]
Vygenerované formáty souborů Projekt MinGW Developer Studio [d]
Licence GNU GPL
webová stránka osdn.net/projects/mingw/

MinGW ( Minimalist  GNU for Windows ) , dříve mingw32  , je sada softwarových vývojových nástrojů pro tvorbu aplikací pro Windows [2] . Zahrnuje kompilátor , nativní Windows port GNU Compiler Collection (GCC) spolu se sadou volně šiřitelných importních knihoven a hlavičkových souborů pro Windows API . MinGW zahrnuje rozšíření knihovny Microsoft Visual C++ Runtime Library pro podporu funkcí C99 [2] . Podporuje standard C++11.

Historie

MinGW se původně jmenovalo mingw32; čísla byla poté vynechána, aby se překonal mylný názor, že MinGW je omezeno na 32bitové systémy [3] . První verze, kterou vytvořil Colin Peters v  roce 1998 , obsahovala pouze GCC port od Cygwinu [4] [5] . První nativní Windows port GCC vytvořil Jan-Jaap van der Heijden, Heijden přidal také binutils a make [4] [5] . Mumit Khan později přispěl k vývoji a přidal do sady ještě více funkcí specifických pro Windows, včetně záhlaví Win32 napsaných Andersem Norlanderem [4] [5] . V roce 2000 byl projekt přesunut na SourceForge.net , aby získal větší veřejnou podporu a centralizoval vývoj [4] [5] .

V září 2005 byl MinGW vybrán jako projekt měsíce na SourceForge.net [5] .

Komponenty MinGW

Projekt MinGW spravuje a distribuuje několik různých základních komponent a přídavných balíčků, včetně různých portů GNU toolchain , jako je GCC a binutils převedené do ekvivalentních balíčků [3] [6] . Tyto nástroje lze použít z příkazového řádku Windows nebo integrovat do IDE .

Kromě toho komponenta MinGW známá jako MSYS ( Minimal SYStem ) poskytuje porty win32 lehkého prostředí shellu podobného Unixu , které obsahuje rxvt a sadu nástrojů POSIX , které jsou dostatečné pro spouštění skriptů autoconf [7] .

Implementace souborů záhlaví Win32 a importních knihoven Win32 pro propojení za běhu od začátku do konce jsou licencovány s povolením [8] a porty GNU jsou dostupné pod licencí GNU General Public License . Binární sestavení plného balíčku MSYS a jednotlivých utilit MinGW GNU jsou k dispozici ke stažení z webu MinGW.

Srovnání s Cygwinem

MinGW rozvětvený z Cygwin 1.3.3. Zatímco Cygwin i MinGW se používají k portování unixového softwaru do Windows, používají odlišný přístup [9] : Cílem Cygwin je poskytnout plnou POSIX vrstvu (podobnou té, která se nachází na Linuxu a jiných unixových systémech) přes Windows a obětovat výkon tam, kde nutné pro kompatibilitu. V souladu s tím tento přístup vyžaduje, aby programy Win32 napsané pomocí Cygwin běžely nad knihovnou kompatibility copyleft , která musí být distribuována s programem, stejně jako se zdrojovým kódem programu. Cílem MinGW je poskytovat nativní funkce a výkon prostřednictvím přímých volání Windows API. Na rozdíl od Cygwin MinGW nepotřebuje DLL pro kompatibilitu, a proto programy nemusí být distribuovány se zdrojovým kódem.

Protože MinGW používá volání Win32 API , nemůže poskytnout úplné POSIX API; neumí zkompilovat některé unixové aplikace, které lze zkompilovat pomocí Cygwin. Zejména se to týká aplikací, které vyžadují funkcionalitu POSIX, jako je fork(), mmap() nebo ioctl() [9] a očekává se, že poběží v prostředí POSIX. Aplikace napsané pomocí multiplatformních knihoven, jako jsou SDL , wxWidgets , Qt nebo GTK+ , mají tendenci se v MinGW snadněji kompilovat než v Cygwin.

Kombinace MinGW a MSYS poskytuje malé, nezávislé prostředí, které lze zavést na vyměnitelné médium bez nutnosti přidávat položky do souborů registru. Cygwin sice poskytuje více funkcí, ale je náročnější na instalaci a údržbu.

Je také možné křížově kompilovat aplikace Windows s MinGW-GCC pod operačními systémy rodiny POSIX . To znamená, že vývojář nemusí instalovat Windows s MSYS , aby mohl zkompilovat programy, které poběží pod Windows bez Cygwin .

MinGW-w64

Vzhledem k tomu, že původní projekt MinGW nesliboval, že jeho kódová základna bude aktualizována o některé nové klíčové prvky Win32 API a také nejnutnější podporu pro 64bitovou architekturu, vznikl projekt MinGW-w64 . Je to nový čistý port GNU Compiler Collection (GCC) pro Microsoft Windows , původně implementovaný OneVision a uvolněný v roce 2008 [10] do veřejné domény ( Public Domain ). Nejprve byl navržen ke zvážení integrace s původním projektem MinGW, ale byl zamítnut kvůli podezření na použití nesvobodného nebo proprietárního kódu. Z mnoha závažných etických důvodů souvisejících s postojem autorů MinGW [11] se vedoucí vývojáři kódu MinGW-w64 rozhodli nadále nepokoušet spolupracovat s projektem MinGW.

MinGW-w64 poskytuje úplnější implementaci Win32 API [12] včetně:

Poznámky

  1. Minimalistický GNU Win32
  2. 1 2 SourceForge.net: MinGW - Minimalistická GNU pro Windows . Získáno 5. července 2009. Archivováno z originálu 1. července 2009.
  3. 1 2 Co je MinGW? . Datum přístupu: 5. července 2009. Archivováno z originálu 21. listopadu 2008.
  4. 1 2 3 4 MinGW-History . Získáno 5. července 2009. Archivováno z originálu 14. srpna 2009.
  5. 1 2 3 4 5 Projekt měsíce SourceForge Archivováno 23. srpna 2007.
  6. Komponenty MinGW . Datum přístupu: 5. července 2009. Archivováno z originálu 29. června 2009.
  7. MinGW - Minimal SYStem . Datum přístupu: 5. července 2009. Archivováno z originálu 5. ledna 2009.
  8. Licenční podmínky | MinGW . Získáno 5. července 2009. Archivováno z originálu dne 4. srpna 2009.
  9. 1 2 Cygwin | MinGW . Datum přístupu: 5. července 2009. Archivováno z originálu 28. srpna 2009.
  10. Historie projektu MinGW-w64 (downlink) . MinGW-w64 Wiki . Získáno 30. 5. 2013. Archivováno z originálu 16. 8. 2013. 
  11. Harmonizace mingwrt / w32api s mingw-w64 (downlink) . Seznam adresátů MinGW . Získáno 30. 5. 2013. Archivováno z originálu 16. 8. 2013. 
  12. http://mingw-w64.sourceforge.net/picker.php (odkaz dolů) . Získáno 30. 5. 2013. Archivováno z originálu 16. 8. 2013. 

Viz také

Odkazy