MinGW: различия между версиями
Dzmuh (обсуждение | вклад) (Новая страница: «{{Заготовка}} == Ссылки == * https://sourceforge.net/projects/mingw/ Категория:Категоризовать») |
Dzmuh (обсуждение | вклад) Нет описания правки |
||
| Строка 1: | Строка 1: | ||
{{ | {{карточка программы | ||
| разработчики = Колин Питерс {{l6e|en|Colin Peters}}, Ян-Яап-ван-дер-Хейден {{l6e|nl|Jan-Jaap van der Heijden}}, Мумит Хан {{l6e|en|Mumit Khan}}, Андерс Норландер {{l6e|en|Anders Norlander}}, Эрни Бойд {{l6e|cy|Earnie Boyd}}, Дейл Хендерсон {{l6e|en|Dale Handerson}} и др. | |||
| написана на = [[Си (Язык программирования)|C]], [[C++]] | |||
| последняя версия = 5.4.2 | |||
| дата последней версии = {{start date and age|2021|04|11}} | |||
| сайт = https://osdn.net/projects/mingw/ | |||
}} | |||
'''MinGW''' {{l6e|en|Minimalist GNU for Windows}}, ранее '''mingw32''' — набор инструментов [[Разработка программного обеспечения|разработки программного обеспечения]] для создания приложений под [[Windows]]<ref name="MinGWSummaryPage">{{Cite web |url=http://sourceforge.net/projects/mingw/ |title=SourceForge.net: MinGW — Minimalist GNU for Windows |access-date=2009-07-05 |archive-date=2009-07-01 |archive-url=https://web.archive.org/web/20090701100321/http://sourceforge.net/projects/mingw |deadlink=no }}</ref>. Включает в себя [[компилятор]], родной [[портирование|программный порт]] [[GNU Compiler Collection]] (GCC) под Windows вместе с набором свободно распространяемых библиотек импорта и [[заголовочный файл|заголовочных файлов]] для [[Windows API]]. В MinGW включены расширения для [[Библиотека времени исполнения|библиотеки времени выполнения]] [[Visual C++|Microsoft Visual C++]] для поддержки функциональности [[C99]]<ref name="MinGWSummaryPage" />. Поддерживает стандарт [[C++11|C++11.]] | |||
== История == | |||
MinGW изначально назывался mingw32; затем цифры были отброшены, чтобы преодолеть заблуждение, что MinGW ограничен 32-битными системами<ref name="FAQ-What">{{Cite web |url=http://mingw.org/mingwfaq.shtml#faq-what |title=What is MinGW? |access-date=2009-07-05 |archive-date=2008-11-21 |archive-url=https://web.archive.org/web/20081121131941/http://www.mingw.org./mingwfaq.shtml#faq-what |deadlink=no }}</ref>. Первый релиз, созданный Колином Петерсом ({{lang-en|Colin Peters}}) в 1998 году, включал в себя только порт [[GNU Compiler Collection|GCC]] из [[Cygwin]]<ref name="history">{{Cite web |url=http://mingw.org/history |title=MinGW — History |access-date=2009-07-05 |archive-date=2009-08-14 |archive-url=https://web.archive.org/web/20090814080833/http://mingw.org/history |deadlink=no }}</ref><ref name="potm"/>. Первый нативный Windows-порт GCC был создан Jan-Jaap van der Heijden, также Heijden добавил [[binutils]] и [[make]]<ref name="history"/><ref name="potm"/>. Mumit Khan позже принял участие в разработке, добавив в комплект ещё больше специфичных для Windows возможностей, включая заголовочные файлы [[Win32]], написанные Anders Norlander<ref name="history"/><ref name="potm"/>. В 2000 проект был перемещён на [[SourceForge.net]], чтобы получить большую поддержку общественности и централизовать разработку<ref name="history"/><ref name="potm"/>. | |||
В сентябре 2005 MinGW был выбран проектом месяца на [[SourceForge.net]]<ref name="potm">[http://sourceforge.net/potm/potm-2005-09.php SourceForge Project of the Month] {{webarchive|url=https://web.archive.org/web/20070823221136/http://sourceforge.net/potm/potm-2005-09.php |date=2007-08-23 }}</ref>. | |||
== Компоненты MinGW == | |||
Проект MinGW поддерживает и распространяет несколько различных ключевых компонентов и дополнительных пакетов, включая различные порты [[GNU toolchain]], такие как [[GNU Compiler Collection|GCC]] и [[binutils]], переведённые в эквивалентные пакеты<ref name="FAQ-What" /><ref name="MinGWComponents">{{Cite web |url=http://sourceforge.net/project/showfiles.php?group_id=2435 |title=MinGW Components |access-date=2009-07-05 |archive-date=2009-06-29 |archive-url=https://web.archive.org/web/20090629184231/http://sourceforge.net/project/showfiles.php?group_id=2435 |deadlink=no }}</ref>. Эти утилиты могут быть использованы из [[Cmd.exe|командной строки Windows]] или интегрированы в [[Интегрированная среда разработки|IDE]]. | |||
В дополнение, компонент MinGW, известный как '''MSYS''' (''Minimal SYStem''), предоставляет win32-порты окружения легковесной Unix-подобной [[Интерфейс командной строки|оболочки]], включающей [[rxvt]] и набор инструментов [[POSIX]], достаточный для запуска скриптов [[autoconf]]<ref name="msys">{{Cite web |url=http://www.mingw.org/msys.shtml |title=MinGW — Minimal SYStem |access-date=2009-07-05 |archive-date=2009-01-05 |archive-url=https://web.archive.org/web/20090105233429/http://mingw.org/msys.shtml |deadlink=no }}</ref>. | |||
Реализации заголовочных файлов [[Win32]] и библиотек импорта Win32 для связывания во время выполнения программы от начала до её завершения имеют [[Пермиссивная лицензия свободного ПО|пермиссивную лицензию]]<ref name="w32api">{{Cite web |url=http://www.mingw.org/license |title=Licensing Terms {{!}} MinGW<!-- Заголовок добавлен ботом --> |access-date=2009-07-05 |archive-date=2009-08-04 |archive-url=https://web.archive.org/web/20090804133441/http://www.mingw.org/license |deadlink=no }}</ref>, а порты GNU доступны под [[GNU General Public License]]. Бинарные сборки полного пакета MSYS и отдельных MinGW GNU утилит доступны для скачивания на сайте MinGW. | |||
== Сравнение с Cygwin == | |||
MinGW [[форк|отделился]] от Cygwin 1.3.3. Несмотря на то, что и Cygwin, и MinGW используются для портирования программного обеспечения Unix под Windows, они используют разный подход<ref name="differencesCygwinMinGW">{{Cite web |url=http://www.mingw.org/node/21 |title=Cygwin {{!}} MinGW<!-- Заголовок добавлен ботом --> |access-date=2009-07-05 |archive-date=2009-08-28 |archive-url=https://web.archive.org/web/20090828110952/http://www.mingw.org/node/21 |deadlink=no }}</ref>: цель Cygwin — предоставить полный слой [[POSIX]] (подобный тому, который находится в Linux и других Unix-системах) над Windows, жертвуя производительностью там, где это необходимо для совместимости. Соответственно, такой подход требует от Win32-программ, написанных с Cygwin, запуска поверх [[копилефт]]ной библиотеки совместимости, которая должна распространяться с программой, а также с исходным кодом программы. Целью MinGW является предоставление нативной функциональности и производительности посредством прямых вызовов Windows API. В отличие от Cygwin, MinGW не нуждается в [[DLL]]-слое совместимости и, таким образом, программы не обязаны распространяться с исходным кодом. | |||
Вследствие того, что MinGW использует вызовы [[Win32 API]], он не может предоставить полного [[POSIX]] API; он не может скомпилировать некоторые приложения Unix, которые могут быть скомпилированы с Cygwin. В частности, это относится к приложениям, которые требуют такой функциональности POSIX, как fork(), mmap() или ioctl()<ref name="differencesCygwinMinGW" /> и предполагают запуск в среде POSIX. Приложения, написанные с использованием кроссплатформенных библиотек, таких, как [[Simple DirectMedia Layer|SDL]], [[wxWidgets]], [[Qt]] или [[GTK+]], как правило, легче компилируются в MinGW, чем в Cygwin. | |||
Комбинация MinGW и MSYS предоставляет небольшую независимую среду, которая может быть загружена на съемные носители, не требуя добавления записей в файлы реестра. Cygwin, предоставляя бо́льшую функциональность, является более сложным для установки и поддержки. | |||
Также возможна [[Кросс-компилятор|кросс-компиляция]] приложений [[Windows]] с MinGW-GCC под управлением [[операционная система|операционных систем]] семейства [[POSIX]]. Это означает, что разработчику не нужно устанавливать Windows с [[MSYS]], чтобы скомпилировать программы, которые будут запускаться под [[Windows]] без [[Cygwin]]. | |||
== MinGW-w64 == | |||
В связи с тем, что в рамках изначального проекта MinGW не обещалось, что в его кодовую базу будут вноситься обновления, связанные с добавлением некоторых новых ключевых элементов Win32 API, а также наиболее необходимой поддержки 64-битной архитектуры, был создан проект [http://mingw-w64.sourceforge.net/ MinGW-w64]. Он является новой чистой реализацией портирования [[GNU Compiler Collection]] (GCC) под [[Microsoft Windows]], осуществленной изначально компанией OneVision и переданной в 2008 году<ref>{{cite web|title=История проекта MinGW-w64|url=http://sourceforge.net/apps/trac/mingw-w64/wiki/History|work=MinGW-w64 Wiki|accessdate=2013-05-30|archiveurl=https://www.webcitation.org/6IuipskOG?url=http://sourceforge.net/apps/trac/mingw-w64/wiki/History|archivedate=2013-08-16|deadurl=yes}}</ref> в общественное пользование ([[Public Domain]]). Сначала он был предложен на рассмотрение для интеграции с оригинальным проектом MinGW, но был отклонен в связи с подозрением на использование несвободного или проприетарного кода. По многим серьёзным причинам этического характера, связанным с отношением со стороны авторов MinGW<ref>{{cite web|title=Harmonizing mingwrt / w32api with mingw-w64|url=http://article.gmane.org/gmane.comp.gnu.mingw.devel/3390|work=MinGW Mailing list|accessdate=2013-05-30|archiveurl=https://www.webcitation.org/6IuirXucU?url=http://article.gmane.org/gmane.comp.gnu.mingw.devel/3390|archivedate=2013-08-16|deadurl=yes}}</ref>, ведущие разработчики кода MinGW-w64 решили больше не пытаться кооперироваться с проектом MinGW. | |||
MinGW-w64 обеспечивает более полную реализацию Win32 API<ref>{{cite web|title=http://mingw-w64.sourceforge.net/picker.php|url=http://mingw-w64.sourceforge.net/picker.php|accessdate=2013-05-30|archiveurl=https://www.webcitation.org/6IuisuuZo?url=http://mingw-w64.sourceforge.net/picker.php|archivedate=2013-08-16|deadurl=yes}}</ref>, включая: | |||
* лучшую поддержку стандарта C99 | |||
* лучшую поддержку pthreads (включая возможность задействовать функциональность стандарта C++11 библиотеки libstdc++ компилятора GCC) | |||
* GCC multilib | |||
* точки входа в программу с поддержкой Unicode (wmain/wWinMain) | |||
* DDK (из проекта [[ReactOS]]) | |||
* DirectX (из проекта WINE) | |||
* поддержку больших файлов | |||
== Примечания == | |||
{{примечания}} | |||
== См. также == | |||
* [[GCC]] | |||
* [[Cygwin]] | |||
* [[GnuWin32]] | |||
* [[DJGPP]] | |||
== Ссылки == | == Ссылки == | ||
* | * [http://gcc.gnu.org/ GCC Home Page] | ||
* [http://www.mingw.org/ Официальная страница MinGW] | |||
* [http://mingw-w64.sourceforge.net/ Официальная страница MinGW-w64] | |||
* [http://sourceforge.net/projects/mingw/ Страница MinGW] на [[SourceForge.net]] | |||
* [http://tdm-gcc.tdragon.net/ Unofficial TDM-MinGW GCC builds] | |||
* [http://mingw-w64.sourceforge.net/download.php GCC for both x64 & x86 Windows!]. Страница загрузки различных вариантов сборок проекта MinGW-w64. В том числе [http://sourceforge.net/projects/mingwbuilds/ Mingw-builds] — всегда последняя версия mingw-w64 GCC; установки не требует; из особенностей следует отметить основные: а) предоставляются 32 и 64 разрядные сборки, б) сборки являются двухцелевыми, в) полная поддержка C++11 thread support library. | |||
* [http://nuwen.net/mingw.html Неофициальная сборка]. Как правило, последняя версия GCC с разными библиотеками и утилитами. Установки не требует. | |||
[[Категория: | [[Категория:Компиляторы Си]] | ||
[[Категория:Компиляторы C++]] | |||
[[Категория:Эмуляторы Unix]] | |||
[[Категория:Свободные компиляторы и интерпретаторы]] | |||
[[Категория:Программное обеспечение проекта GNU]] | |||
[[Категория:Свободное программное обеспечение только под Windows]] | |||
[[Категория:Программное обеспечение с лицензией GNU GPL]] | |||
Версия от 20:49, 21 августа 2024
| MinGW | |
|---|---|
| Ошибка Lua в Модуль:Wikidata на строке 1098: attempt to index field 'wikibase' (a nil value). | |
| Ошибка Lua в Модуль:Wikidata на строке 288: attempt to index field 'wikibase' (a nil value). | |
| Автор | Ошибка Lua в Модуль:Wikidata на строке 1098: attempt to index field 'wikibase' (a nil value). |
| Разработчики | Колин Питерс (англ. Colin Peters), Ян-Яап-ван-дер-Хейден (нидерл. Jan-Jaap van der Heijden), Мумит Хан (англ. Mumit Khan), Андерс Норландер (англ. Anders Norlander), Эрни Бойд (валл. Earnie Boyd), Дейл Хендерсон (англ. Dale Handerson) и др. |
| Написана на | C, C++ |
| Первый выпуск | Ошибка Lua в Модуль:Wikidata на строке 288: attempt to index field 'wikibase' (a nil value). |
| Последняя версия | Ошибка Lua в Модуль:Wikidata на строке 1098: attempt to index field 'wikibase' (a nil value). |
| Кандидат в релизы | Ошибка Lua в Модуль:Wikidata на строке 1098: attempt to index field 'wikibase' (a nil value). |
| Бета-версия | Ошибка Lua в Модуль:Wikidata на строке 1098: attempt to index field 'wikibase' (a nil value). |
| Альфа-версия | Ошибка Lua в Модуль:Wikidata на строке 1098: attempt to index field 'wikibase' (a nil value). |
| Тестовая версия | Ошибка Lua в Модуль:Wikidata на строке 1098: attempt to index field 'wikibase' (a nil value). |
| Сайт | https://osdn.net/projects/mingw/ |
MinGW (англ. Minimalist GNU for Windows), ранее mingw32 — набор инструментов разработки программного обеспечения для создания приложений под Windows[1]. Включает в себя компилятор, родной программный порт GNU Compiler Collection (GCC) под Windows вместе с набором свободно распространяемых библиотек импорта и заголовочных файлов для Windows API. В MinGW включены расширения для библиотеки времени выполнения Microsoft Visual C++ для поддержки функциональности C99[1]. Поддерживает стандарт C++11.
История
MinGW изначально назывался mingw32; затем цифры были отброшены, чтобы преодолеть заблуждение, что MinGW ограничен 32-битными системами[2]. Первый релиз, созданный Колином Петерсом (англ. Colin Peters) в 1998 году, включал в себя только порт GCC из Cygwin[3][4]. Первый нативный Windows-порт GCC был создан Jan-Jaap van der Heijden, также Heijden добавил binutils и make[3][4]. Mumit Khan позже принял участие в разработке, добавив в комплект ещё больше специфичных для Windows возможностей, включая заголовочные файлы Win32, написанные Anders Norlander[3][4]. В 2000 проект был перемещён на SourceForge.net, чтобы получить большую поддержку общественности и централизовать разработку[3][4].
В сентябре 2005 MinGW был выбран проектом месяца на SourceForge.net[4].
Компоненты MinGW
Проект MinGW поддерживает и распространяет несколько различных ключевых компонентов и дополнительных пакетов, включая различные порты GNU toolchain, такие как GCC и binutils, переведённые в эквивалентные пакеты[2][5]. Эти утилиты могут быть использованы из командной строки Windows или интегрированы в IDE.
В дополнение, компонент MinGW, известный как MSYS (Minimal SYStem), предоставляет win32-порты окружения легковесной Unix-подобной оболочки, включающей rxvt и набор инструментов POSIX, достаточный для запуска скриптов autoconf[6].
Реализации заголовочных файлов Win32 и библиотек импорта Win32 для связывания во время выполнения программы от начала до её завершения имеют пермиссивную лицензию[7], а порты GNU доступны под GNU General Public License. Бинарные сборки полного пакета MSYS и отдельных MinGW GNU утилит доступны для скачивания на сайте MinGW.
Сравнение с Cygwin
MinGW отделился от Cygwin 1.3.3. Несмотря на то, что и Cygwin, и MinGW используются для портирования программного обеспечения Unix под Windows, они используют разный подход[8]: цель Cygwin — предоставить полный слой POSIX (подобный тому, который находится в Linux и других Unix-системах) над Windows, жертвуя производительностью там, где это необходимо для совместимости. Соответственно, такой подход требует от Win32-программ, написанных с Cygwin, запуска поверх копилефтной библиотеки совместимости, которая должна распространяться с программой, а также с исходным кодом программы. Целью MinGW является предоставление нативной функциональности и производительности посредством прямых вызовов Windows API. В отличие от Cygwin, MinGW не нуждается в DLL-слое совместимости и, таким образом, программы не обязаны распространяться с исходным кодом.
Вследствие того, что MinGW использует вызовы Win32 API, он не может предоставить полного POSIX API; он не может скомпилировать некоторые приложения Unix, которые могут быть скомпилированы с Cygwin. В частности, это относится к приложениям, которые требуют такой функциональности POSIX, как fork(), mmap() или ioctl()[8] и предполагают запуск в среде 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, осуществленной изначально компанией OneVision и переданной в 2008 году[9] в общественное пользование (Public Domain). Сначала он был предложен на рассмотрение для интеграции с оригинальным проектом MinGW, но был отклонен в связи с подозрением на использование несвободного или проприетарного кода. По многим серьёзным причинам этического характера, связанным с отношением со стороны авторов MinGW[10], ведущие разработчики кода MinGW-w64 решили больше не пытаться кооперироваться с проектом MinGW.
MinGW-w64 обеспечивает более полную реализацию Win32 API[11], включая:
- лучшую поддержку стандарта C99
- лучшую поддержку pthreads (включая возможность задействовать функциональность стандарта C++11 библиотеки libstdc++ компилятора GCC)
- GCC multilib
- точки входа в программу с поддержкой Unicode (wmain/wWinMain)
- DDK (из проекта ReactOS)
- DirectX (из проекта WINE)
- поддержку больших файлов
Примечания
- ↑ 1,0 1,1 SourceForge.net: MinGW — Minimalist GNU for Windows. Дата обращения: 5 июля 2009. Архивировано 1 июля 2009 года.
- ↑ 2,0 2,1 What is MinGW? Дата обращения: 5 июля 2009. Архивировано 21 ноября 2008 года.
- ↑ 3,0 3,1 3,2 3,3 MinGW — History. Дата обращения: 5 июля 2009. Архивировано 14 августа 2009 года.
- ↑ 4,0 4,1 4,2 4,3 4,4 SourceForge Project of the Month Шаблон:Webarchive
- ↑ MinGW Components. Дата обращения: 5 июля 2009. Архивировано 29 июня 2009 года.
- ↑ MinGW — Minimal SYStem. Дата обращения: 5 июля 2009. Архивировано 5 января 2009 года.
- ↑ Licensing Terms | MinGW. Дата обращения: 5 июля 2009. Архивировано 4 августа 2009 года.
- ↑ 8,0 8,1 Cygwin | MinGW. Дата обращения: 5 июля 2009. Архивировано 28 августа 2009 года.
- ↑ История проекта MinGW-w64 (недоступная ссылка — история). MinGW-w64 Wiki. Дата обращения: 30 мая 2013. Архивировано 16 августа 2013 года.
- ↑ Harmonizing mingwrt / w32api with mingw-w64 (недоступная ссылка — история). MinGW Mailing list. Дата обращения: 30 мая 2013. Архивировано 16 августа 2013 года.
- ↑ http://mingw-w64.sourceforge.net/picker.php (недоступная ссылка — история). Дата обращения: 30 мая 2013. Архивировано 16 августа 2013 года.
См. также
Ссылки
- GCC Home Page
- Официальная страница MinGW
- Официальная страница MinGW-w64
- Страница MinGW на SourceForge.net
- Unofficial TDM-MinGW GCC builds
- GCC for both x64 & x86 Windows!. Страница загрузки различных вариантов сборок проекта MinGW-w64. В том числе Mingw-builds — всегда последняя версия mingw-w64 GCC; установки не требует; из особенностей следует отметить основные: а) предоставляются 32 и 64 разрядные сборки, б) сборки являются двухцелевыми, в) полная поддержка C++11 thread support library.
- Неофициальная сборка. Как правило, последняя версия GCC с разными библиотеками и утилитами. Установки не требует.
- Википедия:Cite web (заменить webcitation-архив: deadlink yes)
- Программное обеспечение по алфавиту
- Компиляторы Си
- Компиляторы C++
- Эмуляторы Unix
- Свободные компиляторы и интерпретаторы
- Программное обеспечение проекта GNU
- Свободное программное обеспечение только под Windows
- Программное обеспечение с лицензией GNU GPL