MinGW: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
Bez shrnutí editace
Bez shrnutí editace
Řádek 31: Řádek 31:


== Srovnání s Cygwinem ==
== Srovnání s Cygwinem ==
MinGW byl odvozen od od Cygwynu verze 1.3.3<ref name="history"/>. Přestože jak Cygwin tak MinGW mohou být použity k portaci Unix software na Windows, využívají k tomu odlišné postupy<ref name="differencesCygwinMinGW">http://www.mingw.org/node/21</ref>: Cygwin se zaměřuje na poskytnutí kompletní vrstvy [[Posix|POSIX]] (podobné té v Linuxu nebo jiných Unixových systémech) běžící nad aplikační vrstvou Windows, poskytijíc tak kompatibilitu za cenu určitého početního výkonu. Proto tento postup vyžaduje, aby programy pro Win32 napsané v Cygwinu běželi nad kompatibilní knihovnou, která musí být distribuovaná se zdrojovým kódem programu pod [[copyleft]] licencí. MinGW se zaměřuje na poskytnutí nativní funkcionality a výkonu přímo přez volání Windows API. Na rozdíl od Cygwinu, programi přeložené pomocí MinGW nemusí být distribuovány se zdrojovýcm kódem, protože MinGW nepotřebuje [[kompatibilní]] vrstvu [[Knihovna (programování)|DLL]].
MinGW byl odvozen od Cygwynu verze 1.3.3<ref name="history"/>. Přestože jak Cygwin tak MinGW mohou být použity k portaci Unix software na Windows, využívají k tomu odlišné postupy<ref name="differencesCygwinMinGW">http://www.mingw.org/node/21</ref>: Cygwin se zaměřuje na poskytnutí kompletní vrstvy [[Posix|POSIX]] (podobné té v Linuxu nebo jiných Unixových systémech) běžící nad aplikační vrstvou Windows, poskytijíc tak kompatibilitu za cenu určitého početního výkonu. Proto tento postup vyžaduje, aby programy pro Win32 napsané v Cygwinu běželi nad kompatibilní knihovnou, která musí být distribuovaná se zdrojovým kódem programu pod [[copyleft]] licencí. MinGW se zaměřuje na poskytnutí nativní funkcionality a výkonu přímo přez volání Windows API. Na rozdíl od Cygwinu, programi přeložené pomocí MinGW nemusí být distribuovány se zdrojovýcm kódem, protože MinGW nepotřebuje [[kompatibilní]] vrstvu [[Knihovna (programování)|DLL]].


MinGW nemůže poskytnout plnohodnotné [[Posix|POSIX]] API, protože využívá volání Win32-API. Proto s ním není možné kompilovat některé Unixové aplikace, které mohou být kompilovány s Cygwinem. Konkrétně se to týká aplikací, které potřebují fukcionalitu POSIXU jako fork(), mmap(), nebo ioctl()<ref name="differencesCygwinMinGW">http://www.mingw.org/node/21</ref> a nebo očekává běh uvnitř POSIXového prostředí. Aplikace napsané pomocí cross-platform knihoven, která byla portována do MinGW, jako [[Simple DirectMedia Layer|SDL]], [[wxWidgets]], [[Qt (toolkit)|Qt]], nebo [[GTK+]] se obvykle kompilují bezproblémově jak na MinGW tak v Cygwinu.
MinGW nemůže poskytnout plnohodnotné [[Posix|POSIX]] API, protože využívá volání Win32-API. Proto s ním není možné kompilovat některé Unixové aplikace, které mohou být kompilovány s Cygwinem. Konkrétně se to týká aplikací, které potřebují fukcionalitu POSIXU jako fork(), mmap(), nebo ioctl()<ref name="differencesCygwinMinGW">http://www.mingw.org/node/21</ref> a nebo očekává běh uvnitř POSIXového prostředí. Aplikace napsané pomocí cross-platform knihoven, která byla portována do MinGW, jako [[Simple DirectMedia Layer|SDL]], [[wxWidgets]], [[Qt (toolkit)|Qt]], nebo [[GTK+]] se obvykle kompilují bezproblémově jak na MinGW tak v Cygwinu.

Verze z 27. 4. 2010, 12:31

Šablona:Infobox Software

MinGW (dříve mingw32, Minimalist GNU for Windows) je v informatice kompilátor GCC a GNU Binutils, kterými je možné vytvořit nativní aplikace pro platformu Microsoft Windows (buď přímo ve Windows nebo jako křížový překladač, čímž usnadňuje portování).[1][2] Obsahuje množinu volně šiřitelných hlavičkových souborů pro Windows API. Součástí MinGW jsou rozšíření pro běhovou knihovnu Microsoft Visual C++ pro podporu C99.[1]

Hlavní vlastností MinGW (která nemusí být Open Source uživatelům zpočátku jasná) je, že nevyužívá standardní knihovnu GNU libc, ale snaží se využívat přímo knihovnu MS C Runtime Library (MSVCRT). Výsledkem jsou tedy nativní programy (na rozdíl od projektu Cygwin). Pro jazyky jiné než C používá MinGW GNU knihovny (např. GNU libstdc++ pro C++).

Historie

MinGW byl původně nazván mingw32; čísla byla odstraněna aby se zamezlo důsledku, že bude omezen na 32-bitové systémy.[3] Colin Peters autorizoval první vydání v 1998, které obsahovalo pouze port GCC na Cygwin.[4][5] Jan-Jaap van der Heijden vytvořil port GCC pro Windows, přidal GNU Binutils a soubor make.[4][5] Později vývoj převzal Mumit Khan a přidal do balíku vlastnosti specifické pro windows, včetně hlaviček Win32 od Anderse Norlandera.[4][5] V roce 2000 byl projekt přestěhován na SourceForge.net, aby tak vyzval komunitu ke spolupráci a usměrnil vývoj.[4][5]

MinGW bylo vyhlášeno projektem měsíce na stránkách SourceForge.net v září 2005.[5]

Komponenty MinGW

Projekt MinGW spravuje a distribuuje několik různých jádrových komponent a doplňkových balíků, včetně řady portů GNU toolchainů, jako např. GCC a GNU Binutils, přeložených do ekvivalentních balíků.[6][3] Tyto utility mohou být využívány z příkazové řádky Windows nebo integrovány do IDE. MinGW umožňuje pojmenovávání knihoven v souladu s "<jméno>.lib" a "<jméno>.dll" konvencemi, spolu s běžnou "lib<name>.a" konvencí používané na Unixových systémech.

Komponenta MinGW známá jako MSYS (Minimal SYStem) navíc nabízí portování odlehčeného prostředí Unixovské příkazové řádky do Win32, včetně rxvt a některých POSIXových utilit, které umožňují běh autokonfiguračních skriptů.[7][8]

Implementace hlavičkových souborů Win32 a knihoven pro likování za běhu jsou vydány pod permissive license[9], zatímco porty GNU jsou k dispozici pod GNU General Public License. Na stránkách MinGW jsou k dispozici ke stažení binární soubory kompletního MSYS balíku a individuálních MinGW GNU utilit.

Srovnání s Cygwinem

MinGW byl odvozen od Cygwynu verze 1.3.3[4]. Přestože jak Cygwin tak MinGW mohou být použity k portaci Unix software na Windows, využívají k tomu odlišné postupy[10]: Cygwin se zaměřuje na poskytnutí kompletní vrstvy POSIX (podobné té v Linuxu nebo jiných Unixových systémech) běžící nad aplikační vrstvou Windows, poskytijíc tak kompatibilitu za cenu určitého početního výkonu. Proto tento postup vyžaduje, aby programy pro Win32 napsané v Cygwinu běželi nad kompatibilní knihovnou, která musí být distribuovaná se zdrojovým kódem programu pod copyleft licencí. MinGW se zaměřuje na poskytnutí nativní funkcionality a výkonu přímo přez volání Windows API. Na rozdíl od Cygwinu, programi přeložené pomocí MinGW nemusí být distribuovány se zdrojovýcm kódem, protože MinGW nepotřebuje kompatibilní vrstvu DLL.

MinGW nemůže poskytnout plnohodnotné POSIX API, protože využívá volání Win32-API. Proto s ním není možné kompilovat některé Unixové aplikace, které mohou být kompilovány s Cygwinem. Konkrétně se to týká aplikací, které potřebují fukcionalitu POSIXU jako fork(), mmap(), nebo ioctl()[10] a nebo očekává běh uvnitř POSIXového prostředí. Aplikace napsané pomocí cross-platform knihoven, která byla portována do MinGW, jako SDL, wxWidgets, Qt, nebo GTK+ se obvykle kompilují bezproblémově jak na MinGW tak v Cygwinu.

Kombinace MinGW a MSYS poskytuje malé, nezávyslé prostředí, které může být načteno na odjímatelné médium bez zanéchání údajů v registrech nebo souborech v počítači. Protože Cygwyn nabízí více funkcionality, je složitější z hlediska instalace a údržby.

Navíc je možné křížově kompilovat Windows aplikace pomocí MinGW-GCC na POSIX systémech. To znamená, že vývojáři nepotřebují instalaci Windows s MSYS pro kompilaci softwaru, který poběží na Windowsu bez Cygwinu.

Související články

Šablona:Portál Svobodný software

Reference

V tomto článku byl použit překlad textu z článku MinGW na anglické Wikipedii (číslo revize nebylo určeno)Šablona {{Překlad}} požaduje zadat hodnotu do parametru „revize“!.

Externí odkazy