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 ) |
Č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.
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] .
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.
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 .
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ě: