Mingw-w64

редактировать
MinGW-w64
Первоначальный автор (ы) OneVision Software
Разработчик (и) Кай Тиц, Джонатан Йонг, различные участники GNU
Первоначальный выпуск2005; 15 лет назад (2005 г.)
Стабильный выпуск 7.0.0 / 10 ноября 2019 г.; 11 месяцев назад (10.11.2019)
Написано наC, C ++
Операционная система Microsoft Windows
Тип Компилятор
Лицензия Общественное достояние ( заголовки), Стандартная общественная лицензия GNU (компилятор и набор инструментов), Общественная лицензия Zope
Веб-сайтmingw-w64.org

Mingw-w64 - бесплатная среда с открытым исходным кодом разработка программного обеспечения для создания приложений Microsoft Windows. Он был разветвлен в 2005–2008 годах из MinGW (минималистичный GNU для Windows).

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

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

Содержание
  • 1 История
  • 2 MSYS2
  • 3 Компилятор
  • 4 Ссылки
  • 5 Внешние ссылки
История

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

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

Кроме того, проект Mingw-w64 поддерживает winpthreads, библиотеку-оболочку , аналогичную p Threads-win32, с основным отличием в том, что он позволяет GCC использовать его в качестве библиотеки потоков, что приводит к функциональным библиотекам потоков C ++ 11 , и .

MSYS2

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

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

Вместо предоставления Полная среда, как и Cygwin, MSYS2 сама себя ставит как платформа для разработки и развертывания. MSYS2 устанавливает 3 набора сред, каждый с отдельным набором программ и библиотек. Два из них, называемые 32-битным MinGW-w64 и 64-битным MinGW-w64, просто состоят из собственных компиляторов, инструментов сборки и библиотек, которые можно напрямую использовать для сборки 32-битных или 64-битных программ Windows. Последние программы, созданные с использованием двух собственных сред, не используют никакой эмуляции и могут запускаться или распространяться как собственные программы Windows. Третья установленная среда, называемая MSYS2, вместо этого предоставляет эмулированную среду POSIX, такую ​​как Cygwin, с диспетчером пакетов и стандартными инструментами системы Unix. Таким образом, при управлении самим MSYS2 стандартные инструменты Unix могут использоваться без изменений с помощью эмулированной среды. Также можно установить инструменты сборки в эмулируемой среде MSYS2, если пользователь хочет создать программное обеспечение, которое зависит от уровня эмуляции POSIX, а не от собственного API.

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

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

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).

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

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

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