Jump to content

МинГВ

МинГВ
Оригинальный автор(ы) Колин Питерс
Разработчик(и) Проект МинГВ
Первоначальный выпуск 1 июля 1998 г .; 26 лет назад ( 1998-07-01 )
Стабильная версия
GNU BinUtils — 2.32-1, Менеджер установки — 0.6.3, WSL — 5.4.2 [1] / 12 апреля 2021 г .; 3 года назад ( 12.04.2021 )
Репозиторий ОСДН .сеть /проекты /минв /скм /
Написано в С , С++
Операционная система Microsoft Windows , Unix-подобная (в качестве кросс-компилятора )
Тип Компилятор
Лицензия Общественное достояние (заголовки), Стандартная общественная лицензия GNU (компилятор и набор инструментов)
Веб-сайт ОСДН .сеть /проекты /минв

MinGW («Минималистский GNU для Windows»), ранее mingw32 , — это с открытым исходным кодом бесплатная среда разработки программного обеспечения для создания Microsoft Windows приложений .

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

MinGW не полагается на сторонние C времени выполнения файлы динамической библиотеки (DLL), а поскольку библиотеки времени выполнения не распространяются с использованием GNU General Public License (GPL), нет необходимости распространять исходный код вместе с созданными программами. , если только где-нибудь в программе не используется библиотека GPL. [2]

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

Развитие проекта MinGW разветвилось с созданием в 2005–2008 годах альтернативного проекта под названием Mingw-w64 .

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

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

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

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

В 2007 году появился форк оригинального MinGW под названием Mingw-w64 , обеспечивающий поддержку 64-битных версий и новых API. С тех пор он получил широкое применение и распространение. MSYS2 («минимальная система 2») — это платформа распространения программного обеспечения и разработки для Microsoft Windows , основанная на Mingw-w64 и Cygwin , которая помогает развертывать код из мира Unix в Windows. [9]

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

[ редактировать ]

Большинство языков, поддерживаемых 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 или даже всех из С89 . Хотя ориентация на MSVCRT дает программы, которые не требуют установки дополнительных распространяемых компонентов среды выполнения, отсутствие поддержки C99 вызвало проблемы с переносом, особенно когда printf речь идет о спецификаторах преобразования в стиле . Эти проблемы были частично смягчены внедрением библиотеки совместимости C99, libmingwex , но требуемая обширная работа еще далека от завершения и, возможно, никогда не будет реализована полностью. [10] Mingw-w64 решил эти проблемы и обеспечивает полностью совместимую с POSIX функциональность printf.

[ редактировать ]

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

Компоненты

[ редактировать ]

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

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

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

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

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

Сравнение с Cygwin

[ редактировать ]

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

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

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

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

См. также

[ редактировать ]
  1. ^ «Загрузить список пакетов» . osdn.net . Проверено 4 февраля 2023 г.
  2. ^ «(MinGW включен) MinGW» . MinGW.org/вики . 07.07.2008. Архивировано из оригинала 6 октября 2013 г. Проверено 16 октября 2013 г.
  3. ^ «Стандарты кодирования GNU» . gnu.org . Фонд свободного программного обеспечения. 27 апреля 2013 г. 5.5 Переносимость между типами систем . Проверено 1 июля 2013 г.
  4. ^ Столлман, Ричард (18 сентября 2000 г.). «Libtool Re: Именование проекта gnu-win32?» . libtool (список рассылки) . Проверено 21 мая 2013 г.
  5. ^ Перейти обратно: а б с д «История | МинГВ» . MinGW.org. Архивировано из оригинала 23 августа 2012 г. Проверено 9 июля 2012 г.
  6. ^ Перейти обратно: а б с д и «Проект месяца (sourceforge)» . SourceForge.net. 31 августа 2005 г. Проверено 9 июля 2012 г.
  7. ^ "(вики:) MSYS" . MinGW.org. Архивировано из оригинала 28 августа 2006 г. Проверено 16 апреля 2020 г. MSYS, сокращение от «Minimal SYStem», представляет собой систему интерпретатора командной строки Bourne Shell.
  8. ^ «Объявление о переходе на OSDN.net» . Mingw-пользователи (список рассылки). 21 января 2018 г.
  9. ^ MSYS2: официальная домашняя страница , репозиторий кода.
  10. ^ "(МинГВ И)С99" . MinGW.org/вики . 21 июня 2010 г. Архивировано из оригинала 20 мая 2011 г. Проверено 29 марта 2011 г.
  11. ^ «Взаимодействие библиотек, созданных компиляторами разных производителей | MinGW» . mingw.org . Архивировано из оригинала 12 июня 2010 г.
  12. ^ «(MinGW) Часто задаваемые вопросы» . MinGW.org. Архивировано из оригинала 21 ноября 2008 г. Проверено 9 июля 2012 г.
  13. ^ «MinGW — Минималистичный GNU для Windows» . Sourceforge.net . Проверено 9 июля 2012 г.
  14. ^ «Установщик интерфейса командной строки MinGW» . Архивировано из оригинала 15 июня 2012 года . Проверено 14 июня 2012 г.
  15. ^ "(вики:) MSYS" . MinGW.org. Архивировано из оригинала 18 февраля 2016 г. Проверено 18 февраля 2016 г.
  16. ^ "(вики:) MSYS" . MinGW.org. Архивировано из оригинала 18 февраля 2016 г. Проверено 18 февраля 2016 г. Распространенным заблуждением является то, что MSYS - это «UNIX в Windows», MSYS сам по себе не содержит компилятора или библиотеки C, [...] и не предоставляет каких-либо специфичных для UNIX функций, таких как имена файлов с учетом регистра.
  17. ^ "(вики:) mingwPORT" . MinGW.org. Архивировано из оригинала 23 июля 2012 г. Проверено 9 июля 2012 г.
  18. ^ «(MinGW) Условия лицензирования» . MinGW.org. Архивировано из оригинала 4 августа 2009 г. Проверено 9 июля 2012 г.
  19. ^ Перейти обратно: а б «(MinGW:) О Cygwin» . MinGW.org. Архивировано из оригинала 28 августа 2009 г. Проверено 9 июля 2012 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6f2e053ba94154e027c06f378d5faedb__1716458820
URL1:https://arc.ask3.ru/arc/aa/6f/db/6f2e053ba94154e027c06f378d5faedb.html
Заголовок, (Title) документа по адресу, URL1:
MinGW - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)