Jump to content

Мингв-w64

(Перенаправлено с MinGW-w64 )
MinGW-w64
Оригинальный автор(ы) Программное обеспечение OneVision
Разработчик(и) Кай Титц, Джонатан Йонг, различные GNU участники
Первоначальный выпуск 2005 г .; 19 лет назад ( 2005 )
Стабильная версия
11.0.1 / 29 апреля 2023 г .; 16 месяцев назад ( 29.04.2023 )
Репозиторий НФ .сеть /п /mingw-w64 /mingw-w64 /
Написано в С , С++
Операционная система Microsoft Windows , Linux , MacOS
Тип Компилятор
Лицензия Общественное достояние (заголовки), Стандартная общественная лицензия GNU (компилятор и набор инструментов), Общественная лицензия Zope
Веб-сайт mingw-w64 .org

Mingw-w64 — это с открытым исходным кодом бесплатный набор инструментов разработки , который генерирует двоичные файлы Portable Executable (PE) для Microsoft Windows . Он был разветвлен в 2005–2010 годах из MinGW ( Minimalist GNU для Windows ).

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

Mingw-w64 можно запускать в Microsoft Windows, в Linux (или другой Unix) или в MSYS2 или Cygwin . Mingw-w64 может создавать 32-битные и 64-битные исполняемые файлы для x86 под целевыми именами. i686-w64-mingw32 и x86_64-w64-mingw32.

В 2005 году Mingw-w64 был создан OneVision Software в соответствии с принципами разработки программного обеспечения для чистых помещений , поскольку исходный проект MinGW не предусматривал оперативного обновления своей кодовой базы, включая включение нескольких ключевых новых API, а также столь необходимой 64-битной поддержки. В 2008 году OneVision передала код Каю Титцу, одному из своих ведущих разработчиков, при условии, что исходный код останется открытым. [ 1 ] Впервые он был представлен первоначальному проекту MinGW, но отказался из-за подозрения в использовании непубличной или частной информации. [ 2 ] [ 1 ] [ 3 ] По многим причинам ведущий разработчик и сооснователь проекта MinGW-w64 Кай Титц решил не предпринимать попыток дальнейшего сотрудничества с MinGW. [ 4 ]

MinGW-w64 обеспечивает более полную реализацию API Win32, [ 5 ] включая:

Кроме того, проект Mingw-w64 поддерживает winpthreads, библиотеку-оболочку, аналогичную pthreads-win32, с той основной разницей, что она позволяет GCC использовать ее в качестве библиотеки потоков, что приводит к созданию функциональных библиотек потоков C++11. <thread>, <future>, и <mutex>.

MSYS2 («минимальная система 2») — это платформа распространения программного обеспечения и разработки для Microsoft Windows , основанная на Mingw-w64 и Cygwin , которая помогает развертывать код из мира Unix в Windows. Он играет ту же роль, что и старый MSYS в MinGW. [ 6 ]

MSYS2 разделяет эту цель по переносу кода Unix на машины Windows с несколькими другими проектами, в первую очередь Cygwin и Windows Subsystem for Linux (WSL). WSL позволяет запускать двоичные файлы ELF Linux в Windows через управляемую виртуальную машину . Cygwin предоставляет полную среду POSIX (в виде Windows DLL ), в которой приложения, скомпилированные как Windows EXE, запускаются так же, как и в Unix. [ 7 ]

Вместо того, чтобы предоставлять полную среду, как это делает Cygwin, MSYS2 ставит перед собой задачу стать платформой для разработки и развертывания. [ 8 ]

  • Существует основная среда MSYS2 (похожая на код эмуляции Cygwin и фактически полученная из него) с менеджером пакетов и стандартным системным инструментом Unix. Таким образом, при управлении самим MSYS2 можно использовать стандартные инструменты Unix без изменений, используя эмулируемую среду. Также можно установить инструменты сборки в эмулируемой среде MSYS2, если пользователь хочет создать программное обеспечение, которое зависит от уровня эмуляции POSIX вместо собственного API.
  • Кроме того, предоставляются четыре среды, содержащие собственные компиляторы, инструменты сборки и библиотеки, которые можно напрямую использовать для создания собственных 32- или 64-разрядных программ Windows. Окончательные программы, созданные с использованием двух собственных сред, не используют никакой эмуляции и могут запускаться или распространяться как собственные программы Windows. Это MINGW64 и MINGW32 (исходные среды MinGW-w64, использующие gcc, msvcrt и libstdc++), UCRT64 (адаптация MINGW64 к ucrt) и CLANG64 (адаптация UCRT64 к clang и libc++). Хотя Cygwin также предоставляет компиляторы и библиотеки MinGW-w64, набор доступных библиотек меньше, и ими не так легко управлять, поскольку они не размещаются в отдельных префиксах.

Основная среда MSYS2 предоставляет менеджер пакетов ( Pacman из Arch Linux ), оболочку bash и другие программы Unix . Он использует библиотеку времени выполнения msys-2.0.dll (~20 МБ), созданную на основе библиотеки Cygwin cygwin1.dll и регулярно обновляемую для отслеживания развития Cygwin. Он задуман как среда разработки, которой разработчики могут управлять (с помощью pacman) и запускать свои инструменты. Функции, которые были сочтены ненужными для разработки, удалены. [ 8 ]

Как и Cygwin, MSYS2 поддерживает преобразование путей для программного обеспечения, отличного от MSYS2, запускаемого из него. Например, можно использовать команду notepad++ /c/Users/John/file.txt запустить редактор, который откроет файл с путем Windows C:\Users\John\file.txt. [ 9 ] [ 8 ]

MSYS2 и его среда bash используются Git и GNU Octave в качестве официального дистрибутива Windows.

Компилятор

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

Большинство языков, поддерживаемых GCC, также поддерживаются портом Mingw-w64. К ним относятся C, C++ , Objective-C , Objective-C++, Fortran и Ada . Используются библиотеки времени выполнения GCC (libstdc++ для C++, libgfortran для Fortran и т. д.). Пакет clang LLVM для mingw-w64 также предоставляется MSYS2. Он поддерживает ARM для Windows ( aarch64-w64-mingw32 и armv7-w64-mingw32). [ 10 ] [ 11 ]

Двоичные файлы (исполняемые файлы или библиотеки DLL), созданные с помощью разных компиляторов C++ (например, Mingw-w64 GCC и Visual Studio), как правило, несовместимы по ссылкам из-за использования разных ABI и схем искажения имен , вызванных различиями в средах выполнения C++. Однако скомпилированный код C совместим по ссылкам. [ 12 ] Clang является исключением, поскольку он в основном поддерживает C++ ABI MSVC в Windows. [ 13 ]

В документации binutils содержится актуальная информация о работе с различными форматами, специфичными для Windows, и специальные инструменты для этого. [ 14 ] [ 15 ]

  1. ^ Перейти обратно: а б «(MinGW-w64) История» . MinGW-w64 Wiki . Архивировано из оригинала 5 июля 2019 г. Проверено 18 февраля 2016 г.
  2. ^ Дэнни Смит (13 августа 2007 г.). «Re: Подпроект для заголовка и crt w64» . Группа новостей : comp.gnu.mingw.devel . Usenet:   000001c7dd83$9ae74310$fe6d65da@THOMAS . Архивировано из оригинала 23 июля 2020 года . Проверено 23 июля 2020 г. Беглая выборочная проверка нескольких файлов показала, что источники crt, в частности, содержат слишком много недокументированного материала, который, как я подозреваю, может быть получен из частных источников. С тех пор я избегал просмотра исходников mingw-w64, чтобы избежать каких-либо намеков на нарушение авторских прав. Я вполне могу ошибаться, но я предпочел бы быть в безопасности, чем ставить под угрозу будущее mingw32, который пытался поддерживать этику «чистой комнаты» во время своей разработки.
  3. ^ Маршалл, Кейт (19 июля 2009 г.). «Re: Гармонизация mingwrt/w32api с mingw-w64» . MinGW-dvlpr (список рассылки). Архивировано из оригинала 28 января 2020 года . Проверено 12 июня 2014 г. Однако нам потребуется формальный аудит кода mingw-64, чтобы гарантировать соответствие нашим требованиям к действительно открытой документации источников, прежде чем [слияние mingw-w64] может быть завершено.
  4. ^ Титц, Кай (20 июля 2014 г.). «Re: Гармонизация mingwrt/w32api с mingw-w64» . MinGW-dvlpr (список рассылки). Архивировано из оригинала 28 января 2020 года . Проверено 12 июня 2014 г.
  5. ^ «МинГВ-w64» . MinGW-w64.org. Архивировано из оригинала 18 октября 2019 года . Проверено 30 мая 2013 г.
  6. ^ «МСИС2» . www.msys2.org . Архивировано из оригинала 07 февраля 2021 г. Проверено 30 сентября 2022 г.
  7. ^ «ZSH в Windows через MSYS2» . 26 июля 2018 г. Архивировано из оригинала 28 января 2020 г. . Проверено 30 января 2020 г.
  8. ^ Перейти обратно: а б с «Чем MSYS2 отличается от Cygwin · msys2/Msys2 Wiki» . Архивировано из оригинала 15 февраля 2023 г. Проверено 20 февраля 2023 г.
  9. ^ Бисвас, Суприйо (29 апреля 2017 г.). «Как получить среду Unix/Linux в Windows с помощью MSYS2» . Булев мир . Архивировано из оригинала 30 сентября 2022 г. Проверено 30 сентября 2022 г.
  10. ^ «Пакет: mingw-w64-x86_64-clang» . Пакеты MSYS2 . Архивировано из оригинала 30 октября 2020 года . Проверено 12 февраля 2020 г.
  11. ^ Стуршё, Мартин (23 апреля 2020 г.). "mstorsjo/llvm-mingw" . Гитхаб . Архивировано из оригинала 29 ноября 2020 года . Проверено 27 апреля 2020 г.
  12. ^ «Взаимодействие библиотек, созданных компиляторами разных производителей» . mingw.org . Архивировано из оригинала 30 ноября 2020 г. Проверено 30 сентября 2022 г.
  13. ^ «Совместимость MSVC» . Документация Clang 11 . Архивировано из оригинала 26 января 2021 г. Проверено 12 февраля 2020 г.
  14. ^ «лд: Win32» . исходное программное обеспечение.org . Архивировано из оригинала 14 февраля 2020 г. Проверено 10 февраля 2020 г.
  15. ^ «Документация по двоичным утилитам GNU» . исходное программное обеспечение.org . Архивировано из оригинала 19 февраля 2020 г. Проверено 10 февраля 2020 г.
[ редактировать ]
  • МСИС2
  • WinLibs
  • MXE — Makefiles для сборки MinGW в Unix и многих распространенных библиотеках зависимостей, ориентированных на Win32/64, доступны предварительно созданные пакеты.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0c2de85cd63833f17d792ba86e5902c5__1716811140
URL1:https://arc.ask3.ru/arc/aa/0c/c5/0c2de85cd63833f17d792ba86e5902c5.html
Заголовок, (Title) документа по адресу, URL1:
Mingw-w64 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)