Mingw w64 как установить
Перейти к содержимому

Mingw w64 как установить

  • автор:

Mingw w64 как установить

Система MinGW [1] часто используется как среда для исполнения утилит, пришедших с платформы Unix — make, gcc, g++ и т. д. Они нужны в первую очередь для компилирования приложений на платформе Windows с помощью бесплатных сред разработки (Eclipse, Dev-Cpp, wxDev-C++ и другие).

Есть порты MinGW для 32-битной и для 64-битной версий Windows. Установка 64-битной версии имеет несколько не очень понятных опций настройки, которые специально рассмотрены в этой статье.

[Процесс установки MinGW-W64 по шагам]

1. [2] -> Download -> mingw-w64-install.exe, запустите.

2. На первом экране появится приветствие мастера установки, просто Кликните Next.

MinGW W64 install01

3. Затем появляется важный экран настройки, где нужно выбрать опции системы.

MinGW W64 install02

Architecture: i686 или x86_64. Выберите x86_64, если у Вас современный процессор Athlon или Intel. Если у Вас старый Pentium Pro, Pentium II или Pentium III, то выберите i686.

Threads: posix или win32. Здесь выбирается GCC Threading model. Что выбрать — единого мнения нет. Если Вам нужно портировать сложные многопоточные приложения из Linux или FreeBSD, то возможно Вам лучше подойдет posix. Я обычно выбираю win32.

Exception: dwarf, sjlj или seh. Это относится к методике обработки ошибок. Состав выпадающего списка зависит от предыдущих опций.

Dwarf-2 EH. Реализация для Windows сама по себе не разработана для работы в условиях исполнения 64-битны приложений Windows. В режиме win32 вызываемый обработчик исключения не может распространяться на код, не совместимый со стандартом dw2; это означает, что любое исключение, которое происходит через любые «чужие фреймы» non-dw2 приведет к отказу, включая системные DLL Windows и DLL, встроенные в Visual Studio. Раскручивание кода Dwarf-2 в gcc включает инспектирование сборки x86, и оно не может происходить без соответствующей отладочной информации dwarf-2.

SjLj, SetJump LongJump. Этот метод обработки исключений работает в большинстве случаев на обоих платформах win32 и win64, за исключением сбоев общей защиты (general protection faults). Поддержка структурированной обработки ошибок разработана для gcc с целью преодолеть недостатки dw2 и sjlj. На платформе win64, информация отката размещается в секции xdata и в .pdata (таблица описания функции) вместо стека. Для win32 цепочка обработчиков сохраняется в стеке, и нуждается в сохранении/восстановлении с помощью реально выполняющегося кода.

GCC поддерживает два метода обработки исключений (EH):

DWARF-2 (DW2) EH, который требует наличия в выполняемом коде отладочной информации DWARF-2 (или DWARF-3). DW-2 EH может привести к некоторому разрастанию размера исполняемого кода, потому что в код добавляется большие таблицы отката по содержимому стека.

SJLJ. Этот метод базируется на setjmp/longjmp (SJLJ). Он несколько медленнее, чем DW2 EH (влияет даже на нормальное выполнение, когда не срабатывают исключения), однако он может работать поверх кода, который не был скомпилирован GCC, или в котором нет информации о истории вызовов через стек (call-stack unwinding information).

Structured Exception Handling (SEH). Windows использует свой собственный механизм обработки исключений, известный как Structured Exception Handling (SEH). К сожалению, GCC пока его не поддерживает. Однако обещается, что для x64 в появится поддержка SEH начиная с версии GCC 4.8.

Exception handling models of GCC site:stackoverflow.com
C++ Exception Handling for IA-64 site:static.usenix.org
EH newbies howto gcc.gnu.org
MinGW 64 bit Exception handling: SJLJ, DWARF, and SEH site:qt-project.org

Я выбрал для своей установки вариант seh.

4. На этом шаге нужно просто выбрать каталог установки. Оставьте все по умолчанию.

MinGW W64 install03

5. Запустится процесс закачки, который займет некоторое время.

MinGW W64 install04

По окончании загрузки нажмите Next и после окончания копирования Finish.

MinGW W64 install05

Если Вы хотите, чтобы утилиты из каталога c:\Program Files\mingw-w64\x86_64-4.9.2-win32-seh-rt_v3-rev1\mingw64\bin\ запускались без ввода полного пути, то добавьте этот каталог в пути поиска (в переменную окружения %Path%).

[Ссылки]

1. Mingw-w64 — GCC for Windows 64 & 32 bits site:mingw-w64.sourceforge.net .
2. MinGW-w64 — for 32 and 64 bit Windows site:sourceforge.net .

Комментарии

+15 #1 Khusrav 16.09.2016 16:47

У меня ошибка при установке mingw-w64-install. Ошибка: cannot download repository.txt. И не открывается второе окно. У меня Windows 7 64х.

В поддержку Qt

Компилятор MinGW является важным компонентом среды разработки приложений для Windows с использованием библиотеки Qt, если конечно Вы выбрали именно такой вариант, а не альтернативный, использующий Microsoft Visual Studio. Данная статья призвана оказать помощь в установке компилятора.

В Linux устанавливать компилятор MinGW может потребоваться только в том случае, если Вы собираетесь производить сборку приложений для Windows. О том как это делается, в том числе и непосредственно сам процесс установки MinGW, подробно изложено в посвященной этой теме статье.

При установке Qt 5 имеется возможность установить и требуемую версию компилятора MinGW (см. здесь). Для независимой установки выполняются действия, описанные ниже.

1. Скачиваем отсюда готовую сборку MinGW 4.9.2

i686-4.9.2-release-posix-dwarf-rt_v3-rev1.7z 48 MB
(именно 1-я «ревизия» устанавливается с Qt 5.5.1)

2. В архиве лежит папка mingw32 , распаковываем ее в папку C:\Qt и переименовываем, например, в mingw-4.9.2 .

Данная версия замечательна тем, что вместе с MinGW устанавливается и работоспособный MSYS, без которого никак не обойтись. Процесс установки совсем несложный.

1. Скачиваем с сайта разработчика файл установщика онлайн

mingw-get-inst-20120426.exe 647 KB

2. Запускаем установщик и следуем инструкциям. При запросе

Use pre-packaged repository catalogues 20120426
Download latest repository catalogues

следует выбрать первый из предложенных вариантов установки. Путь установки, предложенный по умолчанию, лучше изменить, но пробелы в нем должны отсутствовать. Пусть будет, например, C:\Qt\mingw-4.6.2 . Группу создаваемых ярлыков назовем MinGW 4.6.2 . Когда будет предложено выбрать устанавливаемые компоненты, следует обязательно отметить пункты C++ Compiler и MSYS Basic System . Последний потребуется для сборки отладчика GDB (см. статью). Во время работы установщика в консольном окне будут отображаться выполняемые действия – загрузка компонентов, их распаковка, настройка и т.п.

Основным востребованным инструментом данной версии MinGW будет оболочка командной строки Unix-подобной среды. Запустить ее можно, воспользовавшись пунктом главного меню MinGW Shell из созданной при установке группы ярлыков или выполнив в командной строке Windows

3. В заключение добавим несколько пакетов, которые не вошли в состав ядра MSYS, но могут оказаться востребованными. Речь идет о библиотеке bz2 , а также утилитах patch и unzip . Для их установки запускаем MinGW Shell и вводим команды

mingw-get install msys-libbz2
mingw-get install msys-patch
mingw-get install msys-unzip

Установить перечисленные выше пакеты можно добавить и вручную, как предлагалось в предыдущей редакции статьи.

Данная версия MinGW требуется для использования с библиотекой Qt 4.8.5 и ниже, например, для поддержки старых проектов, время модернизации которых под Qt 5 не настало. Для установки выполняются действия, описанные ниже.

1. Скачиваем отсюда или отсюда готовую сборку

MinGW-gcc440_1.zip 34 MB

Следует отметить, что в настоящее время приведенные здесь ссылки пожалуй являются одними из немногих рабочих. Спасибо за них сайтам code.google.com и code.x2go.org.

2. В архиве лежит папка mingw , распаковываем ее в папку C:\Qt и переименовываем, например, в mingw-4.4.0 .

Это новая редакция статьи, старая редакция доступна по ссылке.

MinGW: как установить и пользоваться этим компилятором, для чего он нужен

Lorem ipsum dolor

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

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Установка и использование MSYS2 и Mingw-w64 под Windows

Текст был первоначально написан для сайта “Железные призраки прошлого”, но затем невозбранно перенесен на эту Wiki и теперь живет тут.

Введение

В целях ретрокомпьютинга иногда возникает желание “что-нибудь скомпилировать под 32-битный Windows”. Ага, ага. Вот и у меня однажды возникала такая же ситуация. Когда-то давно мне довелось пользоваться компилятором Mingw и оболочкой MSYS, так что я попробовал снова их найти и установить. Оказалось, что там “всё не так, как раньше”. Вобщем, сейчас ситуация такая: “простой” MinGW и “классический” MSYS обновляться перестали и они зачахли где-то в районе 2015 года.

ПРИМЕЧАНИЕ: Надеюсь, читатели понимают разницу между Cygwin и Mingw. Кратко: Cygwin пытается воссоздать наиболее полную “среду” UNIX/POSIX на Windows, со всеми её фишками, типа fork(), особенностями файловой системы, сигналами, псевдотерминалами и т.д. в то время как Mingw — это (изначально) просто перенос компилятора GCC на Windows, без вот этого всего. А MSYS — это “оболочка”, то есть набор утилит для сборки, главные из которых — пожалуй make и bash . Подробности.

Оказывается, нынче текущая версия MSYS — это MSYS2. Это такой странный гибрид из Cygwin и старого MSYS. Подобно Cygwin он делает замену путей в стиле UNIX, маскирует расширение *.exe, поддерживает псевдотерминалы, UNIX-сигналы и еще много чего. Это, с одной стороны, облегчает перенос и сборку всяких нетривиальных UNIX программ, а с другой стороны, теперь все msys-программы, в отличии от старого MSYS тянут за собой DLL-ку: msys-2.0.dll .

А компилятор с тулзами нынче называется Mingw-w64. Это вовсе не значит, что он 64-битный, это просто такое имя. Он существует во всех возможных комбинациях: 32-битный (т.е. работающий на 32-бит Windows) для билда 32-битных программ, 64-битный для билдинга 64-битных программ, и все промежуточные варианты, то есть 32-битный для построения 64-битных и наоборот, 64-битный для 32-бит.

Вы еще не запутались ? Держитесь, это только начало… 🙂

MSYS2 теперь поддерживает несколько видов терминалов (т.е. программ для отрисовки “текстового” экрана) — один новомодный Mintty, утащенный с того же Cygwin, который типа лучше поддерживает механизмы терминала UNIX, но опять же, тянет за собой всякое… Другой — почти классическая Windows-консоль почти без обвеса (ConEmu) но зато с закладками (Tabs). На самом деле, есть еще третий вид терминала (defterm), но он не совсем поддерживается… Подробности. Чтобы запустить MSYS2 c нужным терминалом, надо стартовый msys2_shell.cmd запустить с нужным ключиком. По-умолчанию запускается Mintty.

Да, сама MSYS2 тоже бывает 32-битная и 64-битная. К счастью на сайте MSYS2 есть нужный инсталлятор, ( msys2-x86_64 или msys2-i686 ) — это такой огромный файл .EXE, у которого внутри целый архив соответствующих программ. MSYS2 64-битная по умолчанию ставится в C:\msys64 , а 32-битная — в C:\msys32 . Можете попробовать поменять каталог, но тогда никто ничего не гарантирует… Но вот беда — инсталлятор старый и первое, что нужно сделать — это обновиться: pacman -Syuu Этот pacman первым делом обновит сам себя, так что ОБЯЗАТЕЛЬНО надо прибить всё окно! НЕ выходя. И запустить pacman -Syuu еще раз.

Вы еще тут ? Я еще держусь, но с трудом… 🙂

ПРИМЕЧАНИЕ: С мая 2020 32-битную MSYS2 стали потихоньку сворачивать. Она еще поддерживается, но пакеты для нее выходят крайне редко, а начальный инсталлятор для 32-битной версии MSYS2 убрали с главной стравницы сюда. Следите за новостями. Таким образом, даже для сборки 32-битных приложений нужно использовать 64-битную ОС и 64-битную MSYS2 . Увы.

Компилятор и его запуск

Ну вот например поставили мы MSYS2 (без разницы, 64-битную или 32-битную) и обновились. Давайте попробуем, наконец, скомпилить HelloWorld под Windows консоль. А вот хрен вам! Оказывается, теперь есть НЕ ОДИН компилятор, точнее не одна build-система, а несколько. Из них первая — для компиляции программ под САМУ MSYS2 (вы же помните, что она тащит за собой теперь как минимум DLL msys-2.0.dll и работает с UNIX-путями), а остальные build-системы — для обычных “голых” Windows программ, как в старом добром Mingw. Компилятор и там и там — знакомый Mingw-w64, но по-разному настроенный. Да, не забываем что всё это может существовать в 32-бит, 64-бит и все комбинации между ними! Так что на самом деле у нас бывает (как минимум!) ТРИ build системы: msys2 , mingw32 и mingw64 . Все три ставить не обязательно. Например, если нам надо только собирать “чистые” 32-битные программы на 64-битной винде то можно поставить 64-битную MSYS2 без её собственных компиляторов и build-систему mingw32 . (как понимаете, на самом деле это будет 64-битный компилятор по имени Mingw-w64 работающий под 64-битной MSYS2 и который умеет делать 32-битные “чистые” программы под Windows. Надеюсь крыша у вас еще не поехала…)

Итак, давайте сначала установим тулзы для сборки: pacman —needed -S base-devel Это установит всякие полезные для сборки утилиты в нашу MSYS2 (любой битности). Установщик pacman знает про себя, 32-бита он или 64, берёт правильные пакеты и ставит в правильный каталог. Репозиторий для любой MSYS2 всегда называется просто msys2 🙂 Компилятор для самой MSYS2 в base-devel не входит, да он нам и не нужен.

MSYS2 Menu

А вот теперь аккуратнее! Чтобы установить build-систему, которая делает 32-бит программы надо установить группу mingw-w64-i686-toolchain . То есть компилятор называется Mingw-w64 (помним, что это просто название такое). Ставится он на нашу текущую MSYS2 и будет генерить 32-битные программы (хвостик -i686 ). Делаем pacman -S —needed mingw-w64-i686-toolchain . Пакеты компилятора скачаются (из репозитория mingw32 ) и будут установлены. Вот только никакого компилятора не появится!

Чтобы воспользоваться нужным компилятором, надо запустить нашу MSYS2 особым образом. Если вы откроете кнопку Пуск –> Все программы –> “MSYS2 32bit” то увидите три разных “среды”: “MSYS2 MSYS”, “MSYS2 MinGW 32bit” и “MSYS2 MinGW 64bit” (а в новых добавились еще clang и ucrt). По крайней мере, на Windows7 так. На Windows10 эти программы расположены в главном меню под буквой “M”. Вот эти три разные режима запуска и делают всю магию. Альтернативный путь — запускать напрямую программы из папки C:\msys64\……exe или скрипт C:\msys64\msys2_shell.cmd с ключами -mingw32 , -mingw64 или -msys2 . Это точно то же самое.

Давайте запустим “MSYS2 MinGW 32bit”. Вот теперь у нас доступен компилятор gcc, причем он полностью настроен, с указанием папки include , линкера и пути к библиотекам. Ура!

Пишем программы

Создадим Си-шный файлик hello.c со стандартным библиотечным вызовом printf():

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *