MinGW(англ. Minimalist GNU for Windows), раніше mingw32,— це набір вільного програмного забезпечення з відкритим кодом для розробки програм для Windows.
Тип | компілятор |
---|---|
Розробник | MinGW Project |
Платформа | x86 |
Операційна система | Microsoft Windows |
Мова програмування | [1] і C |
Ліцензія | GNU GPL |
Вебсайт | osdn.net/projects/mingw/ |
Він включає в себе порт GNU Compiler Collection(GCC), GNU Binutils, набір вільно розповсюджуваних Windows файлів заголовків та статичних бібліотек які дозволяють використовувати Windows API, GNU debugger та інші утиліти.
MinGW не використовує сторонніх C DLL файлів. Бібліотеки не розповсюджуються під ліцензією GNU's General Public License (GPL), тому не обов'язково надавати вихідний код разом з програмою.
Історія
MinGW спочатку мав назву mingw32(Minimalist GNU for W32), згідно з договором GNU W32 було скороченням для Windows. Числа були відкинуті, щоб не вважалось, що він буде обмеженим для використання лише на 32-бітних системах Перший реліз був створений Коліном Пітерсом(англ. Colin Peters) у 1998 році, у нього входив лише порт GCC з Cygwin. Ян-Яп ван дер Хейден(англ. Jan-Jaap van der Heijden) створив порт GCC для Windows і також додав binutils та make. Пізніше розробкою зайнявся Маміт Хан (англ. Mumit Khan), який додав системні заголовки Windows та інші пакунки. У 2000 році проект переїхав на SourceForge.net, щоб залучити більше підтримки від громади та централізувати розробку. У вересні 2005 року MinGW був обраний проектом місяця на SourceForge.net.
Підтримка мов програмування
Більшість мов, які підтримує GCC, також підтримуються і у MinGW. Це C, , Objective-C, Fortran, Ada.
MinGW за умовчанням виконує компонування з бібліотекою компонентів [en], яка є бібліотекою мови C, створену у 1998 році і тому не підтримує стандарт C99 і C89 не повністю. Відсутність підтримки C99 спричинило багато проблем у портуванні, особливо там де залучені специфікатори перетворень у printf-стилі. Ці проблеми були частково усунені імплементацією бібліотеки libmingwex сумісної з C99. MinGW-w64 усунув ці проблеми та запровадив повну POSIX-сумісну функціональність printf.
Компоненти MinGW
Проект MinGW підтримує і поширює кілька різних ключових компонентів і додаткових пакетів, включаючи різні порти GNU toolchain, такі як GCC і Binutils, переведені в еквіваленті пакети. Ці утиліти можуть бути використані з командного рядка вікна або інтегровані в IDE.
На додаток, компонент MinGW, відомий як MSYS (Minimal SYStem) надає win32-порти легкої Unix-подібної shell оболонки, що включає і набір інструментів POSIX, достатній для запуску скриптів .
Реалізації заголовних файлів Win32 і бібліотек імпорту Win32 для зв'язування під час виконання програми від початку до її завершення мають пермісивну ліцензію, а порти GNU доступні під GNU General Public License. Бінарні збірки повного пакету MSYS та окремих MinGW GNU утиліт доступні для завантаження на сайті MinGW .
Порівняння з Cygwin
MinGW відокремився від Cygwin 1.3.3. Незважаючи на те, що і Cygwin, і MinGW використовуються для портування програмного забезпечення Unix під ОС Windows, вони використовують різний підхід: мета Cygwin — надати повний шар POSIX (подібний до того, який знаходиться в Linux та інших Unix-системах) над ОС Windows, жертвуючи продуктивністю там, де це необхідно для сумісності. Відповідно, такий підхід вимагає від Win32 програм, написаних з Cygwin, запуску поверх копілефтної бібліотеки сумісності, яка повинна поширюватися з програмою, а також з вихідним кодом програми. Метою MinGW є надання нативної функціональності і продуктивності за допомогою прямих викликів Windows API. На відміну від Cygwin, MinGW не потребує DLL — шару сумісності.
Внаслідок того, що MinGW використовує виклики Win32 API, він не може надати повного POSIX API; він не може скомпілювати деякі програми Unix, які можуть бути скомпільовані з Cygwin. Зокрема, це відноситься до застосунків, які вимагають такої функціональності POSIX, як fork, або і допускають запуск в середовищі POSIX. Програми, написані з використанням багатоплатформних бібліотек, таких, як SDL, WxWidgets, Qt або GTK+, як правило, легше компілюються в MinGW, ніж в Cygwin.
Комбінація MinGW і MSYS надає невелике незалежне середовище, яке може бути завантажене на знімні носії, не вимагаючи додавання записів у файли реєстру. Cygwin, надаючи більшу функціональність, є складнішим для встановлення та підтримки.
Також можлива крос-компіляція застосунків для Windows з MinGW — GCC під управлінням операційних систем сімейства POSIX . Це означає, що розробнику не потрібно встановлювати Windows, з MSYS, щоб скомпілювати програми, які будуть запускатися під Windows без Cygwin.
MinGW-w64
У зв'язку з тим, що в рамках початкового проекту MinGW не обіцяв, що в його кодову базу будуть вноситися оновлення пов'язані з додаванням деяких нових ключових елементів Win32 API, а також найбільш необхідної підтримки 64-бітної архітектури, був створений проект MinGW-w64. Він є новою чистою реалізацією порту GNU Compiler Collection (GCC) під Microsoft Windows здійсненої спочатку компанією та переданої у 2008 році в громадське користування (). Спочатку він був запропонований на розгляд для інтеграції з оригінальним проектом MinGW, але був відхилений у зв'язку з підозрою на використання не вільного чи патентованого коду. Через велику кількість серйозних причин етичного характеру пов'язаним з ставленням авторів MinGW провідні розробники коду MinGW-w64 вирішили більше не намагатися кооперуватися з проектом MinGW.
MinGW-w64 забезпечує повнішу реалізацію Win32 API та включає :
- кращу підтримку стандарту C99
- кращу підтримку Pthreads (включаючи можливість залучити функціонал стандарту C++11 бібліотеки libstdc++ компілятора GCC)
- GCC multilib
- точки входу в програму з підтримкою Unicode (wmain / wWinMain)
- DDK (з проекту ReactOS)
- DirectX (з проекту Wine)
- Підтримка великих файлів
- підтримка 64-розрядних ОС Windows
Див. також
Примітки
- The mingw Open Source Project on Open Hub: Languages Page — 2006.
Джерела
- GCC Homepage [ 11 січня 2012 у Wayback Machine.]
- MinGW Official Page [ 11 січня 2012 у Wayback Machine.]
- GNU Coding Standards [ 28 травня 2014 у Wayback Machine.]
- Sourceforge.net project of the month
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
MinGW angl Minimalist GNU for Windows ranishe mingw32 ce nabir vilnogo programnogo zabezpechennya z vidkritim kodom dlya rozrobki program dlya Windows MinGW Minimalist GNU for WindowsTipkompilyatorRozrobnikMinGW ProjectPlatformax86Operacijna sistemaMicrosoft WindowsMova programuvannyaC 1 i CLicenziyaGNU GPLVebsajtosdn net projects mingw Vin vklyuchaye v sebe port GNU Compiler Collection GCC GNU Binutils nabir vilno rozpovsyudzhuvanih Windows fajliv zagolovkiv ta statichnih bibliotek yaki dozvolyayut vikoristovuvati Windows API GNU debugger ta inshi utiliti MinGW ne vikoristovuye storonnih C DLL fajliv Biblioteki ne rozpovsyudzhuyutsya pid licenziyeyu GNU s General Public License GPL tomu ne obov yazkovo nadavati vihidnij kod razom z programoyu IstoriyaMinGW spochatku mav nazvu mingw32 Minimalist GNU for W32 zgidno z dogovorom GNU W32 bulo skorochennyam dlya Windows Chisla buli vidkinuti shob ne vvazhalos sho vin bude obmezhenim dlya vikoristannya lishe na 32 bitnih sistemah Pershij reliz buv stvorenij Kolinom Pitersom angl Colin Peters u 1998 roci u nogo vhodiv lishe port GCC z Cygwin Yan Yap van der Hejden angl Jan Jaap van der Heijden stvoriv port GCC dlya Windows i takozh dodav binutils ta make Piznishe rozrobkoyu zajnyavsya Mamit Han angl Mumit Khan yakij dodav sistemni zagolovki Windows ta inshi pakunki U 2000 roci proekt pereyihav na SourceForge net shob zaluchiti bilshe pidtrimki vid gromadi ta centralizuvati rozrobku U veresni 2005 roku MinGW buv obranij proektom misyacya na SourceForge net Pidtrimka mov programuvannyaBilshist mov yaki pidtrimuye GCC takozh pidtrimuyutsya i u MinGW Ce C C Objective C Fortran Ada MinGW za umovchannyam vikonuye komponuvannya z bibliotekoyu komponentiv en yaka ye bibliotekoyu movi C stvorenu u 1998 roci i tomu ne pidtrimuye standart C99 i C89 ne povnistyu Vidsutnist pidtrimki C99 sprichinilo bagato problem u portuvanni osoblivo tam de zalucheni specifikatori peretvoren u printf stili Ci problemi buli chastkovo usuneni implementaciyeyu biblioteki libmingwex sumisnoyi z C99 MinGW w64 usunuv ci problemi ta zaprovadiv povnu POSIX sumisnu funkcionalnist printf Komponenti MinGWProekt MinGW pidtrimuye i poshiryuye kilka riznih klyuchovih komponentiv i dodatkovih paketiv vklyuchayuchi rizni porti GNU toolchain taki yak GCC i Binutils perevedeni v ekvivalenti paketi Ci utiliti mozhut buti vikoristani z komandnogo ryadka vikna abo integrovani v IDE Na dodatok komponent MinGW vidomij yak MSYS Minimal SYStem nadaye win32 porti legkoyi Unix podibnoyi shell obolonki sho vklyuchaye i nabir instrumentiv POSIX dostatnij dlya zapusku skriptiv Realizaciyi zagolovnih fajliv Win32 i bibliotek importu Win32 dlya zv yazuvannya pid chas vikonannya programi vid pochatku do yiyi zavershennya mayut permisivnu licenziyu a porti GNU dostupni pid GNU General Public License Binarni zbirki povnogo paketu MSYS ta okremih MinGW GNU utilit dostupni dlya zavantazhennya na sajti MinGW Porivnyannya z CygwinMinGW vidokremivsya vid Cygwin 1 3 3 Nezvazhayuchi na te sho i Cygwin i MinGW vikoristovuyutsya dlya portuvannya programnogo zabezpechennya Unix pid OS Windows voni vikoristovuyut riznij pidhid meta Cygwin nadati povnij shar POSIX podibnij do togo yakij znahoditsya v Linux ta inshih Unix sistemah nad OS Windows zhertvuyuchi produktivnistyu tam de ce neobhidno dlya sumisnosti Vidpovidno takij pidhid vimagaye vid Win32 program napisanih z Cygwin zapusku poverh kopileftnoyi biblioteki sumisnosti yaka povinna poshiryuvatisya z programoyu a takozh z vihidnim kodom programi Metoyu MinGW ye nadannya nativnoyi funkcionalnosti i produktivnosti za dopomogoyu pryamih viklikiv Windows API Na vidminu vid Cygwin MinGW ne potrebuye DLL sharu sumisnosti Vnaslidok togo sho MinGW vikoristovuye vikliki Win32 API vin ne mozhe nadati povnogo POSIX API vin ne mozhe skompilyuvati deyaki programi Unix yaki mozhut buti skompilovani z Cygwin Zokrema ce vidnositsya do zastosunkiv yaki vimagayut takoyi funkcionalnosti POSIX yak fork abo i dopuskayut zapusk v seredovishi POSIX Programi napisani z vikoristannyam bagatoplatformnih bibliotek takih yak SDL WxWidgets Qt abo GTK yak pravilo legshe kompilyuyutsya v MinGW nizh v Cygwin Kombinaciya MinGW i MSYS nadaye nevelike nezalezhne seredovishe yake mozhe buti zavantazhene na znimni nosiyi ne vimagayuchi dodavannya zapisiv u fajli reyestru Cygwin nadayuchi bilshu funkcionalnist ye skladnishim dlya vstanovlennya ta pidtrimki Takozh mozhliva kros kompilyaciya zastosunkiv dlya Windows z MinGW GCC pid upravlinnyam operacijnih sistem simejstva POSIX Ce oznachaye sho rozrobniku ne potribno vstanovlyuvati Windows z MSYS shob skompilyuvati programi yaki budut zapuskatisya pid Windows bez Cygwin MinGW w64U zv yazku z tim sho v ramkah pochatkovogo proektu MinGW ne obicyav sho v jogo kodovu bazu budut vnositisya onovlennya pov yazani z dodavannyam deyakih novih klyuchovih elementiv Win32 API a takozh najbilsh neobhidnoyi pidtrimki 64 bitnoyi arhitekturi buv stvorenij proekt MinGW w64 Vin ye novoyu chistoyu realizaciyeyu portu GNU Compiler Collection GCC pid Microsoft Windows zdijsnenoyi spochatku kompaniyeyu ta peredanoyi u 2008 roci v gromadske koristuvannya Spochatku vin buv zaproponovanij na rozglyad dlya integraciyi z originalnim proektom MinGW ale buv vidhilenij u zv yazku z pidozroyu na vikoristannya ne vilnogo chi patentovanogo kodu Cherez veliku kilkist serjoznih prichin etichnogo harakteru pov yazanim z stavlennyam avtoriv MinGW providni rozrobniki kodu MinGW w64 virishili bilshe ne namagatisya kooperuvatisya z proektom MinGW MinGW w64 zabezpechuye povnishu realizaciyu Win32 API ta vklyuchaye krashu pidtrimku standartu C99 krashu pidtrimku Pthreads vklyuchayuchi mozhlivist zaluchiti funkcional standartu C 11 biblioteki libstdc kompilyatora GCC GCC multilib tochki vhodu v programu z pidtrimkoyu Unicode wmain wWinMain DDK z proektu ReactOS DirectX z proektu Wine Pidtrimka velikih fajliv pidtrimka 64 rozryadnih OS WindowsDiv takozhCygwin GCC POSIX WindowsPrimitkiThe mingw Open Source Project on Open Hub Languages Page 2006 d Track Q124688DzherelaGCC Homepage 11 sichnya 2012 u Wayback Machine MinGW Official Page 11 sichnya 2012 u Wayback Machine GNU Coding Standards 28 travnya 2014 u Wayback Machine Sourceforge net project of the month