Interested Article - MinGW
- 2020-08-18
- 2
MinGW ( англ. Minimalist GNU for Windows ) , ранее mingw32 — набор инструментов разработки программного обеспечения для создания приложений под Windows . Включает в себя компилятор , родной программный порт GNU Compiler Collection (GCC) под Windows вместе с набором свободно распространяемых библиотек импорта и заголовочных файлов для Windows API . В MinGW включены расширения для библиотеки времени выполнения Microsoft Visual C++ для поддержки функциональности C99 . Поддерживает стандарт C++11.
История
MinGW изначально назывался mingw32; затем цифры были отброшены, чтобы преодолеть заблуждение, что MinGW ограничен 32-битными системами . Первый релиз, созданный Колином Петерсом ( англ. Colin Peters ) в 1998 году, включал в себя только порт GCC из Cygwin . Первый нативный Windows-порт GCC был создан Jan-Jaap van der Heijden, также Heijden добавил binutils и make . Mumit Khan позже принял участие в разработке, добавив в комплект ещё больше специфичных для Windows возможностей, включая заголовочные файлы Win32 , написанные Anders Norlander . В 2000 проект был перемещён на SourceForge.net , чтобы получить большую поддержку общественности и централизовать разработку .
В сентябре 2005 MinGW был выбран проектом месяца на SourceForge.net .
Компоненты MinGW
Проект MinGW поддерживает и распространяет несколько различных ключевых компонентов и дополнительных пакетов, включая различные порты GNU toolchain , такие как GCC и binutils , переведённые в эквивалентные пакеты . Эти утилиты могут быть использованы из командной строки Windows или интегрированы в IDE .
В дополнение, компонент MinGW, известный как MSYS ( Minimal SYStem ), предоставляет win32-порты окружения легковесной Unix-подобной оболочки , включающей rxvt и набор инструментов POSIX , достаточный для запуска скриптов autoconf .
Реализации заголовочных файлов 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(), mmap() или ioctl() и предполагают запуск в среде POSIX. Приложения, написанные с использованием кроссплатформенных библиотек, таких, как SDL , wxWidgets , Qt или GTK+ , как правило, легче компилируются в MinGW, чем в Cygwin.
Комбинация MinGW и MSYS предоставляет небольшую независимую среду, которая может быть загружена на съемные носители, не требуя добавления записей в файлы реестра. Cygwin, предоставляя бо́льшую функциональность, является более сложным для установки и поддержки.
Также возможна кросс-компиляция приложений Windows с MinGW-GCC под управлением операционных систем семейства POSIX . Это означает, что разработчику не нужно устанавливать Windows с MSYS , чтобы скомпилировать программы, которые будут запускаться под Windows без Cygwin .
MinGW-w64
В связи с тем, что в рамках изначального проекта MinGW не обещалось, что в его кодовую базу будут вноситься обновления, связанные с добавлением некоторых новых ключевых элементов Win32 API, а также наиболее необходимой поддержки 64-битной архитектуры, был создан проект . Он является новой чистой реализацией портирования GNU Compiler Collection (GCC) под Microsoft Windows , осуществленной изначально компанией OneVision и переданной в 2008 году в общественное пользование ( Public Domain ). Сначала он был предложен на рассмотрение для интеграции с оригинальным проектом MinGW, но был отклонен в связи с подозрением на использование несвободного или проприетарного кода. По многим серьёзным причинам этического характера, связанным с отношением со стороны авторов MinGW , ведущие разработчики кода MinGW-w64 решили больше не пытаться кооперироваться с проектом MinGW.
MinGW-w64 обеспечивает более полную реализацию Win32 API , включая:
- лучшую поддержку стандарта C99
- лучшую поддержку pthreads (включая возможность задействовать функциональность стандарта C++11 библиотеки libstdc++ компилятора GCC)
- GCC multilib
- точки входа в программу с поддержкой Unicode (wmain/wWinMain)
- DDK (из проекта ReactOS )
- DirectX (из проекта WINE)
- поддержку больших файлов
Примечания
- ↑ . Дата обращения: 5 июля 2009. 1 июля 2009 года.
- ↑ Дата обращения: 5 июля 2009. 21 ноября 2008 года.
- ↑ . Дата обращения: 5 июля 2009. 14 августа 2009 года.
- ↑ 23 августа 2007 года.
- . Дата обращения: 5 июля 2009. 29 июня 2009 года.
- . Дата обращения: 5 июля 2009. 5 января 2009 года.
- . Дата обращения: 5 июля 2009. 4 августа 2009 года.
- ↑ . Дата обращения: 5 июля 2009. 28 августа 2009 года.
- . MinGW-w64 Wiki . Дата обращения: 30 мая 2013. Архивировано из 16 августа 2013 года.
- . MinGW Mailing list . Дата обращения: 30 мая 2013. Архивировано из 16 августа 2013 года.
- . Дата обращения: 30 мая 2013. Архивировано из 16 августа 2013 года.
См. также
Ссылки
- на SourceForge.net
- . Страница загрузки различных вариантов сборок проекта MinGW-w64. В том числе — всегда последняя версия mingw-w64 GCC; установки не требует; из особенностей следует отметить основные: а) предоставляются 32 и 64 разрядные сборки, б) сборки являются двухцелевыми, в) полная поддержка C++11 thread support library.
- . Как правило, последняя версия GCC с разными библиотеками и утилитами. Установки не требует.
- 2020-08-18
- 2