MinGW

редактировать
MinGW
Автор (ы) Колин Питерс
Разработчик (и) Проект MinGW
Первый выпуск1 июля 1998 г.; 22 года назад (1998-07-01)
Стабильный выпуск GNU BinUtils - 2.32-1, Менеджер установки - 0.6.3, WSL - 5.2.1 / 11 февраля 2019 г.; 20 месяцев назад (2019-02-11)
Написано наC, C ++
Операционная система Microsoft Windows, Unix-like (как кросс-компилятор )
Тип Компилятор
Лицензия Общественное достояние (заголовки), Стандартная общественная лицензия GNU (компилятор и набор инструментов)
Веб-сайтmingw.org

MinGW («Минималистский GNU для Windows»), ранее mingw32, представляет собой бесплатную среду разработки программного обеспечения с открытым исходным кодом для создания Приложения Microsoft Windows. Разработка проекта MinGW была разветвлена ​​ с созданием в 2005–2008 годах альтернативного проекта под названием Mingw-w64.

MinGW включает порт из коллекции компиляторов GNU (GCC), GNU Binutils для Windows (ассемблер, компоновщик, менеджер архивов ), набор свободно распространяемых для Windows файлов заголовков и статических библиотек импорта, которые позволяют использовать Windows API, Windows родная сборка GNU Debugger проекта GNU и прочие утилиты.

MinGW не полагается на файлы third-party C runtime библиотеки динамической компоновки (DLL), и поскольку библиотеки времени выполнения не распространяются с использованием Стандартная общественная лицензия GNU (GPL), нет необходимости распространять исходный код вместе с созданными программами, если в программе не используется библиотека GPL.

MinGW может быть запущен либо на собственной платформе Microsoft Windows, либо на Linux (или другом Unix), либо на «перекрестной» на Cygwin. Хотя программы, созданные под MinGW, являются 32-битными исполняемыми файлами, их можно использовать как в 32-битных, так и в 64-битных версиях Windows.

Содержание
  • 1 История
  • 2 Поддержка языков программирования
  • 3 Совместимость ссылок
  • 4 Компоненты
  • 5 Сравнение с Cygwin
  • 6 Ссылки
  • 7 Внешние ссылки
История

MinGW изначально назывался mingw32 («Минималистичный GNU для W32») в соответствии с соглашением GNU, согласно которому Windows сокращается как «W32». Числа были опущены, чтобы не предполагать, что это будет ограничено производством 32-битных двоичных файлов. Колин Петерс является автором первого выпуска в 1998 году, состоящего только из Cygwin-порта GCC. Ян-Яап ван дер Хейден создал порт GCC для Windows и добавил binutils и make. Позже Мумит Хан взяла на себя разработку, добавив в пакет больше функций, специфичных для Windows, в том числе системные заголовки Windows от Андерса Норландера. В 2000 году проект был перемещен в SourceForge, чтобы получить дополнительную помощь от сообщества и централизовать его разработку.

MinGW был выбран проектом месяца на SourceForge в сентябре 2005 года.

В 2007 году появился ответвление исходного mingw под названием mingw-w64, чтобы обеспечить поддержку 64-битных и новых API. С тех пор он получил широкое распространение и распространение.

MSYS (сокращение от «Minimal System») был представлен как система интерпретатора командной строки оболочки Bourne с целью улучшения взаимодействия с собственным программным обеспечением Windows.

В 2018 году, после разногласий с SourceForge по поводу администрирования его списков рассылки, MinGW перешел на OSDN.

Поддержка языков программирования

Большинство языков, поддерживаемых GCC, поддерживаются на Порт MinGW тоже. К ним относятся C, C ++, Objective-C, Objective-C ++, Fortran и Ada. Используются библиотеки времени выполнения GCC (libstdc ++ для C ++, libgfortran для Fortran и т. Д.).

MinGW по умолчанию ссылается на библиотеку компонентов ОС Windows MSVCRT, которая является библиотекой C, которая Visual C версии 6.0, связанный с (первоначальной целью была CRTDLL), который был выпущен в 1998 году и поэтому не включает поддержку функций C99 или даже всех C89. Хотя ориентация на MSVCRT приводит к появлению программ, которые не требуют установки дополнительных распространяемых компонентов среды выполнения, отсутствие поддержки C99 вызывает проблемы с переносом, особенно когда речь идет о спецификаторах преобразования стиля printf. Эти проблемы были частично смягчены реализацией библиотеки совместимости C99, libmingwex, но требующаяся обширная работа далека от завершения и, возможно, никогда не будет полностью реализована. MinGW-w64 решил эти проблемы и полностью предоставляет POSIX-совместимая функциональность printf.

Совместимость ссылок

Двоичные файлы (исполняемые файлы или библиотеки DLL), созданные с помощью различных компиляторов C ++ (например, MinGW и Visual Studio), как правило, не совместимы по ссылкам. Однако скомпилированный код C совместим по ссылкам.

Компоненты

Проект MinGW поддерживает и распространяет ряд различных основных компонентов и дополнительных пакетов, включая различные порты GNU toolchain, такие как GCC и binutils, переведенные в эквивалентные пакеты. Эти утилиты можно использовать из командной строки Windows или интегрировать в IDE. Пакеты могут быть установлены с помощью командной строки через mingw-get.

MinGW поддерживает динамические библиотеки, названные в соответствии с .libи .dllсоглашения, а также статические библиотеки, следующие соглашению об именах lib .a, общему для Unix и Unix-подобных систем.

Кроме того, компонент MinGW, известный как MSYS (минимальная система), предоставляет порты Windows для облегченной Unix-подобной среды оболочки, включая rxvt и выбор POSIX инструменты, достаточные для запуска сценариев autoconf, но они не предоставляют компилятор C или файловую систему с учетом регистра..

mingwPORT - это пользовательские дополнения к MinGW сборник программного обеспечения. Вместо того, чтобы предоставлять эти «надстройки» в виде предварительно скомпилированных двоичных пакетов, они поставляются в форме интерактивных сценариев оболочки Bourne, которые проводят конечного пользователя через процесс автоматической загрузки и исправления исходного исходного кода, а затем сборка и установка. Пользователи, которые хотят создать любое приложение из mingwPORT, должны сначала установить и MinGW, и MSYS.

Реализация системных заголовков Windows и статических библиотек импорта выпускается под разрешительной лицензией, в то время как GNU порты предоставляются на условиях Стандартной общественной лицензии GNU. Бинарные загрузки как полного пакета MSYS, так и отдельных утилит MinGW GNU доступны с сайта MinGW.

Сравнение с Cygwin

Хотя и Cygwin, и MinGW могут использоваться для переноса программного обеспечения Unix в Windows, у них есть разные подходы: Cygwin стремится предоставить полный уровень POSIX, включающий полная реализация всех основных системных вызовов и библиотек Unix. Совместимость считается более приоритетной, чем производительность. С другой стороны, приоритетами MinGW являются простота и производительность. Таким образом, он не предоставляет некоторые API-интерфейсы POSIX, которые не могут быть легко реализованы с помощью Windows API, например fork() , mmap() и ioctl() . Приложения, написанные с использованием кроссплатформенной библиотеки, которая сама была перенесена на MinGW, например SDL, wxWidgets, Qt или GTK, будут обычно компилируются в MinGW так же легко, как и в Cygwin.

Программы Windows, написанные с помощью Cygwin, запускаются поверх совместимой с авторским левом DLL, которая должна распространяться с программой вместе с исходным кодом программы. MinGW не требует уровня совместимости , так как программы на основе MinGW компилируются с прямыми вызовами Windows API.

Комбинация MinGW и MSYS обеспечивает небольшую автономную среду, которую можно загрузить на съемный носитель, не оставляя записей в реестре или файлах на компьютере.

Также возможна кросс-компиляция приложений Windows с MinGW-GCC в системах POSIX. Это означает, что разработчикам не требуется установка Windows с MSYS для компиляции программного обеспечения, которое будет работать в Windows с Cygwin или без него.

Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-30 12:51:13
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте