Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
MinGW (Minimalist GNU for Windows)
MinGW (Minimalist GNU for Windows), ранее mingw32 — бесплатная среда разработки родных приложений под Microsoft Windows с открытым исходным кодом. Состоит из портированного GNU Compiler Collection, GNU Binutils (ассемблер, компоновщик, менеджер архивации), GNU Debugger, набора свободно распространяемых библиотек импорта и заголовочных файлов для Microsoft Windows API и прочего.
MinGW не нуждается в DLL-слое совместимости, и поэтому, если в программе не используется лицензия GPL, программы не обязательно распространять вместе с исходным кодом.
MinGW может использоваться как на своей родной платформе Microsoft Windows, так и на UNIX-подобных и на Cygwin
Также, другими авторами в качестве альтернативы MinGW, был разработан компилятор MinGW-w64, который поддерживает 64-х битные системы. Сначала он был предложен на рассмотрение для интеграции с оригинальным проектом MinGW, но был отклонен в связи с подозрением на использование несвободного кода. В дальнейшем, разработчики MinGW-w64 отказались от дальнейшего сотрудничества с MinGW.
Содержание
История
Изначально MinGW назывался mingw32, но впоследствии от этого названия отказались, чтобы подчеркнуть, что MinGW не ограничен 32-битными системами. Первый релиз, созданный Колином Петерсом в 1998 году, включал в себя только порт GCC из Cygwin. Ян-Яап ван дер Хайден создал первый нативный Windows-порт GCC, добавив также binutils и make. Мумит Кхан позже принял участие в разработке, добавив в комплект больше специфичных для Windows возможностей, включая заголовочные файлы Win32, написанные Андершом Нурландером. Чтобы получить большую поддержку общественности и централизовать разработку, в 2000 проект был перемещён на SourceForge.net, где в сентябре 2005 был выбран проектом месяца.
Поддержка языков программирования
Большинство языков, которые поддерживаются GCC, поддерживаются и в MinGW. Среди них C, C++, Objective-C, Objective-C++, Fortran и Ada. Также используются библиотека из GCC (libstdc++ for C++, libgfortran for Fortran, др.)
Необходимо отметить, что GCC не включает в себя библиотеку языка C. По умолчанию MinGW подключается к предоставляемой Windows библиотеке MSVCRT, к которой так же подключался Microsoft Visual Studio 6.0 1998 года. Библиотека не поддерживает стандарт C99, так как его ещё не существовало к моменту выпуска MSVCRT. Стандарт C89 поддерживается, однако не полностью. MSVCRT не изменялась в течение многих лет, и в будущем каких-либо изменений не ожидается. Новые версии Visual Studio используют новые исполняемые библиотеки, однако они не всегда предоставляются операционной системой или не являются свободно распространяемыми, что затрудняет работу с открытым программным обеспечением.
По причине использования MSVCRT, MinGW имеет множество ограничений и особенностей с совместимостью как и Microsoft Visual Studio 6.0. При разработке не следует полагаться на C99, только на C89. К примеру, новый формат символов в printf %a и %ll не поддерживается (хотя для последнего существует обходное решение).
Разработчики MinGW пытались разрешить подобные проблемы во вспомогательной библиотеке mingwex (или более точно libmingwex). Сейчас она достаточно далека от совершенства и, вполне вероятно, что работа над ней останется незавершённой. Для примера, добавление поддержки %a в ранее упомянутый, printf потребовало бы полное изменение устройства функции. Использование библиотеки glibc не помогло в решении проблемы из-за её лицензии. [Источник 2] Однако, проблема разрешилась в MinGW-w64, где к тому же обеспечивается полной соответствие стандартам POSIX.
Компоненты MinGW
Сравнение с Cygwin
MinGW является форком от Cygwin версии 1.3.3. Несмотря на то, что и Cygwin, и MinGW используются для портирования программного обеспечения Unix под Windows, они используют разный подход: цель Cygwin — предоставить полный слой POSIX, включающий в себя реализацию всех основных системных вызовов и библиотек системы UNIX, жертвуя производительностью там, где это необходимо для совместимости. Целью MinGW является предоставление нативной функциональности и производительности посредством прямых вызовов Windows API. В отличие от Cygwin, MinGW не нуждается в DLL-слое совместимости и, таким образом, программы не обязаны распространяться с исходным кодом. Программы под Windows, написанные с Cygwin, должны запускаться поверх копилефтной библиотеки совместимости, которая должна распространяться с программой, а также с исходным кодом программы.
Комбинация MinGW и MSYS предоставляет небольшую независимую среду, которая может быть загружена на съемные носители, не требуя добавления записей в файлы реестра. Cygwin, предоставляя бо́льшую функциональность, является более сложным для установки и поддержки.
Также возможна кросс-компиляция приложений Microsoft Windows с MinGW-GCC под управлением операционных систем семейства POSIX. Это означает, что разработчику не нужно устанавливать Windows с MSYS, чтобы скомпилировать программы, которые будут запускаться под Microsoft Windows без Cygwin.
MinGW-w64
В связи с тем, что в рамках изначального проекта MinGW не обещалось, что в его кодовую базу будут вноситься обновления, связанные с добавлением некоторых новых ключевых элементов Win32 API, а также наиболее необходимой поддержки 64-битной архитектуры, был создан проект MinGW-w64. Он является новой чистой реализацией портирования GNU Compiler Collection (GCC) под Microsoft Windows, осуществленной изначально компанией OneVision и переданной в 2008 году в общественное пользование (Public Domain). Сначала он был предложен на рассмотрение для интеграции с оригинальным проектом MinGW, но был отклонен в связи с подозрением на использование несвободного или проприетарного кода. По многим серьезным причинам этического характера, связанным с отношением со стороны авторов MinGW, ведущие разработчики кода MinGW-w64 решили больше не пытаться кооперироваться с проектом MinGW.
MinGW-w64 обеспечивает более полную реализацию Win32 API, включая:
Установка
Сборка Mingw в Windows своими руками
Зачем собирать mingw самому?
| Оригинальный автор (ы) | Программное обеспечение OneVision | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Разработчики) | Кай Тиц, Джонатан Юн, различные GNU вкладчики | |||||||||
| Первый выпуск | 2005 ; 16 лет назад ( 2005 ) | |||||||||
| Стабильный выпуск |
| Лицензия | Бесплатная |
| ОС | Windows 7 и выше |
| Язык интерфейса | Русский, английский |
| Разработка | Colin Peters |
| Разновидность программы | Для компиляции |
Обзор программы
Команда проекта предоставляет пользователям следующие компоненты:
Для установки ПО первым шагом надо бесплатно скачать МinGW на ПК, выбрав путь без пробелов. Рекомендуется назначить корень диска, например С:\ХХХ\MinGW. Ярлык в пусковом меню создавайте по желанию или отмените операцию, выставив галочку рядом с Don’tcreate a StartMenu folder.
Вам понадобятся пакеты:
После подтверждения установки появится окно с отображением прогресса скачивания. Нужно следить, чтобы не было ошибок — при недоступности тех или иных ресурсов установку придётся повторить позже.
Теперь добавьте путь до директории C:\ХХХ\MinGW\bin в переменную PATH:
Добавьте путь до директории \bin, в нашем условном случае это будет C:\ХХХ\MinGW\bin с разделением путей через «;». На этом этапе завершается установка MinGW и оболочки. Для дополнительных пакетов рекомендуется назначить ярлычки.
Используйте набор команд mingw-get install+msys-man/msys-wget/msys-zip/msys-unzip/msys-bzip2/msys-perl, где базовая команда mingw-get install относится к аналогу вида apt-get install под дистрибутивы Linux.
Перечень других дополнительных пакетов вызывается mingw-get show, удаление ненужного пакета mingw-get remove+удаляемые файлы. Для удобной работы рекомендуются утилиты консольного редактора vim или более привычного многим юзерам Notepad++. Архивацию и распаковку проводите с 7-zip.
Подробную инструкцию вы можете получить из справочного раздела о программе или посетив официальный сайт МinGW.







