MinGW
Материал из Википедии — свободной энциклопедии
| MinGW - Minimalist GNU for Windows | |
| Тип | компилятор |
| Разработчик | Colin Peters, Jan-Jaap van der Heijden, Mumit Khan, Anders Norlander, Earnie Boyd, Dale Handerson и др. |
| ОС | Microsoft Windows |
| Версия | 5.1.4 — 29.04.2008 |
| Лицензия | GNU GPL |
| Сайт | http://www.mingw.org/(англ.) |
MinGW (англ. Minimalist GNU for Windows), ранее mingw32, — нативный программный порт GNU Compiler Collection(GCC) под Microsoft Windows, вместе с набором свободно распространяемых библиотек импорта и заголовочных файлов для Windows API. MinGW позволяет разработчикам создавать нативные приложения Microsoft Windows[1]. В MinGW включены расширения для библиотеки времени выполнения Microsoft Visual C++ для поддержки функциональности C99[1].
Содержание |
[править] История
MinGW изначально назывался mingw32; числа были отброшены, чтобы преодолеть заблуждение, что MinGW ограничен 32-битными системами[2]. Первый релиз, созданный Колином Петерсом (англ. Colin Peters) в 1998 году, включал в себя только порт GCC из Cygwin[3][4]. Нативный Windows-порт GCC, созданный Jan-Jaap van der 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, переведённые в эквивалентые пакеты[5][2]. Эти утилиты могут быть использованы из командной строки 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.

