MinGW - MinGW

MinGW
Původní autoři Colin Peters
Vývojáři Projekt MinGW
První vydání 1. července 1998 ; Před 22 lety ( 01.07.1998 )
Stabilní uvolnění
GNU BinUtils - 2.32-1, Manažer instalace - 0.6.3, WSL - 5.2.1 / 11. února 2019 ; Před 2 roky ( 11.02.2019 )
Napsáno C , C ++
Operační systém Microsoft Windows , podobný Unixu (jako křížový překladač )
Typ Překladač
Licence Public domain (záhlaví), GNU General Public License (kompilátor a sada nástrojů)
webová stránka osdn .net / projects / mingw / (stránka projektu, stále aktivní)
mingw .osdn .io (neaktivní a nefunkční; původní doméně mingw.org vypršela platnost)

MinGW („Minimalistická GNU pro Windows“), dříve mingw32 , je bezplatné a otevřené vývojové prostředí softwaru pro vytváření aplikací systému Microsoft Windows . Vývoj projektu MinGW byl vidlicových s vytvořením v letech 2005-2008 alternativního projektu s názvem MinGW-W64 .

MinGW zahrnuje otvor o GNU Compiler Collection (GCC), GNU Binutils pro Windows ( assembler , linker , správce archivů ), sadu volně šiřitelných Windows specifické hlavičkové soubory a statické dovozních knihoven , které umožňují používání Windows API , se systémem Windows rodák sestavení GNU ‚s GNU debuggeru a různé pomůcky.

MinGW se nespoléhá na soubory runtime dynamické knihovny (DLL) třetích stran C a protože běhové knihovny nejsou distribuovány pomocí GNU General Public License (GPL), není nutné distribuovat zdrojový kód s vytvořenými programy , pokud není jinde v programu použita knihovna GPL.

MinGW lze provozovat buď na nativní platformě Microsoft Windows, cross-hostované na Linuxu (nebo jiném Unixu), nebo „cross-native“ na Cygwin . Přestože jsou programy produkované v MinGW 32bitové spustitelné soubory, lze je použít v 32bitové i 64bitové verzi systému Windows.

Dějiny

MinGW byl původně nazýván mingw32 („Minimalistický GNU pro W32“), podle konvence GNU, kdy je Windows zkrácen jako „W32“. Čísla byla vynechána, aby se zabránilo implikaci, že bude omezena na výrobu 32bitových binárních souborů . Colin Peters byl autorem počátečního vydání v roce 1998, který se skládal pouze z cygwinského přístavu GCC. Jan-Jaap van der Heijden vytvořil pro Windows nativní port GCC a přidal binutils a make . Mumit Khan později převzal vývoj a do balíčku přidal další funkce specifické pro Windows, včetně hlaviček systému Windows od Anderse Norlandera. V roce 2000 byl projekt přesunut do SourceForge za účelem získání větší pomoci od komunity a centralizace jejího rozvoje.

MinGW byl vybrán jako projekt měsíce na SourceForge pro září 2005.

MSYS (kontrakce „Minimal System“) byl představen jako systém pro interpretaci příkazového řádku prostředí Bourne s cílem lepší interoperability s nativním softwarem Windows.

V roce 2018, po neshodě se SourceForge ohledně správy svých seznamů adres, MinGW migrovala na OSDN .

Vidlička

V roce 2007 se objevila vidlice původního MinGW s názvem Mingw-w64 , aby poskytla podporu pro 64 bitů a nová API. Od té doby získal široké použití a distribuci. MSYS2 („minimal system 2“) je distribuce softwaru a vývojová platforma pro Microsoft Windows , založená na Mingw-w64 a Cygwin , která pomáhá nasazovat kód ze světa Unixu na Windows.

Podpora programovacího jazyka

Většina jazyků podporovaných GCC je podporována také na portu MinGW. Patří mezi ně C, C ++ , Objective-C , Objective-C ++, Fortran a Ada . Používají se běhové knihovny GCC (libstdc ++ pro C ++, libgfortran pro Fortran atd.).

Odkazy MinGW ve výchozím nastavení na knihovnu komponent Windows OS MSVCRT , což je knihovna C, na kterou je propojen Visual C ++ verze 6.0 (počáteční cíl byl CRTDLL), která byla vydána v roce 1998, a proto nezahrnuje podporu funkcí C99 nebo dokonce všech z C89 . Zatímco cílení na MSVCRT přináší výnosy, které nevyžadují instalaci žádných dalších redistribuovatelných modulů za běhu, nedostatek podpory pro C99 způsobil problémy s portováním, zejména pokud jde o specifikátory převodu stylu printf . Tyto problémy byly částečně zmírněny implementací knihovny kompatibility C99, libmingwex , ale požadovaná rozsáhlá práce zdaleka není úplná a nemusí být nikdy plně realizována. Mingw-w64 tyto problémy vyřešil a poskytuje funkce tisku printf plně kompatibilní s POSIX.

Kompatibilita odkazů

Binární soubory (spustitelné soubory nebo DLL) generované různými kompilátory C ++ (jako MinGW a Visual Studio) obecně nejsou kompatibilní s odkazy. Zkompilovaný C kód je však kompatibilní s odkazy.

Součásti

Projekt MinGW udržuje a distribuuje řadu různých základních komponent a doplňkových balíků, včetně různých portů sady nástrojů GNU , jako je GCC a binutils , přeložených do ekvivalentních balíčků. Tyto nástroje lze použít z příkazového řádku systému Windows nebo integrovat do IDE . Balíčky lze instalovat pomocí příkazového řádku pomocí mingw-get.

MinGW podporuje dynamické knihovny pojmenované podle konvencí <name>.liba <name>.dll, stejně jako statické knihovny podle lib<name>.akonvence pojmenování běžné v Unixu a systémech podobných Unixu.

Kromě toho komponenta MinGW známá jako MSYS ( minimální systém ) poskytuje porty Windows lehkého prostředí prostředí Unixového prostředí, včetně rxvt a výběru nástrojů POSIX dostatečných pro spuštění skriptů autoconf , ale neposkytuje kompilátor C nebo systém souborů malá a velká písmena .

mingwPORTs jsou uživatelem přidané doplňky do kolekce softwaru MinGW. Spíše než poskytovat tyto „doplňky“ jako předkompilované binární balíčky, jsou dodávány ve formě interaktivních skriptů prostředí Bourne , které koncového uživatele provedou procesem automatického stahování a opravy původního zdrojového kódu a jeho následného sestavení a instalace. Uživatelé, kteří chtějí vytvořit libovolnou aplikaci z mingwPORTu, si musí nejprve nainstalovat MinGW i MSYS.

Implementace záhlaví systému Windows a statických knihoven pro import jsou vydávány na základě permisivní licence , zatímco porty GNU jsou poskytovány na základě GNU General Public License . Binární stahování jak kompletního balíčku MSYS, tak jednotlivých obslužných programů MinGW GNU jsou k dispozici na webu MinGW.

Srovnání s Cygwinem

Ačkoli lze k přenosu unixového softwaru do Windows použít jak Cygwin, tak MinGW, mají různé přístupy: Cygwin si klade za cíl poskytnout úplnou POSIX vrstvu zahrnující plnou implementaci všech hlavních unixových systémových volání a knihoven. Kompatibilita je považována za vyšší prioritu než výkon. Na druhou stranu prioritami MinGW jsou jednoduchost a výkon. Jako takový neposkytuje některá POSIX API, která nelze snadno implementovat pomocí Windows API, jako například fork(), mmap()a ioctl(). Aplikace napsané pomocí multiplatformní knihovny, která byla sama přenesena do MinGW, jako jsou SDL , wxWidgets , Qt nebo GTK , se obvykle v MinGW kompilují stejně snadno jako v Cygwinu.

Programy Windows napsané pomocí Cygwinu běží na kopii kopírované knihovny DLL kompatibility, která musí být distribuována s programem, spolu se zdrojovým kódem programu. MinGW nevyžaduje vrstvu kompatibility , protože programy založené na MinGW jsou kompilovány s přímými voláními API Windows.

Kombinace MinGW a MSYS poskytuje malé samostatné prostředí, které lze načíst na vyměnitelné médium bez zanechání záznamů v registru nebo v souborech v počítači.

Je také možné křížově kompilovat aplikace Windows s MinGW-GCC v systémech POSIX. To znamená, že vývojáři nepotřebují instalaci Windows s MSYS, aby mohli kompilovat software, který poběží na Windows s Cygwinem nebo bez něj.

Viz také


Reference

externí odkazy