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

Как пользоваться MinGW? — типичный вопрос начинающих программистов, которые столкнулись с тем, что не могут скомпилировать свою программу на C или С++. С такой ситуацией они столкнулись не случайно, а вследствие того, что изначально выбрали не то средство для разработки программ.

Все мы знаем, что для того, чтобы писать код программы, нужно использовать среду разработки или текстовый редактор, которые поддерживают синтаксис выбранного языка программирования. Среда разработки, она же IDE — это комплексный профессиональный инструмент, который содержит все, что нужно для программирования. Обычно полноценные IDE используют профессиональные разработчики для более сложных проектов. Однако у этой категории инструментов есть и «представители попроще» — текстовые редакторы. Обычно в них собраны основные инструменты для написания кода:

  • подсветка синтаксиса;

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

  • отладчики программ;

  • управление проектами;

  • и др.

MinGW, текстовый редактор и IDE

Перечень инструментов, которые могут входить в состав текстового редактора, может быть очень разнообразный, поэтому очень часто границы между текстовым редактором и полноценной IDE «стерты». Часто это связано с тем, что большинство текстовых редакторов можно при помощи плагинов довести до уровня профессиональной IDE.

Тем не менее казусы случаются. Чем сложнее инструмент для программирования, тем труднее его изучать молодым программистам, поэтому они часто выбирают инструмент попроще. Однако важно выбирать инструмент для разработки не по его простоте, а по требованиям к разрабатываемой программе. Например, может так случиться, что разрабатывается программа на С или С++ в текстовом редакторе. Чтобы запустить код такой программы, нужен компилятор, а компилятора в текстовом редакторе нет. При этом, если использовать полноценную IDE, тогда там есть компилятор. Возьмем 2 похожих продукта компании Microsoft:

  1. Visual Studio. Это продвинутая среда разработки, где встроено большое количество разнообразного инструмента, в том числе и компилятор для С или С++.

  2. VS Code. Это продвинутый текстовый редактор, где есть много инструментов для программирования, но нет встроенного компилятора. Поэтому, если разрабатывать С-программу на этом инструменте, нужно будет устанавливать компилятор отдельно. В этом случае на помощь придет набор инструментов MinGW, а как его установить и начать пользоваться, читайте ниже в статье.

MinGW: как установить и начать пользоваться

MinGW — это набор инструментов, который используется при работе над программированием Windows-приложений. В его состав входит много разных инструментов, например:

  • компилятор С-языков;

  • программный порт для GNU;

  • большое количество разнообразных библиотек и расширений;

  • ассемблер;

  • архиватор;

  • линковщик;

  • и др.

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

Установка MinGW на компьютер Windows

Итак, перед тем как начать пользоваться MinGW, нужно установить эти инструменты к себе на компьютер. Это можно сделать по следующему алгоритму:

  1. Пройдите на официальный сайт этого набора, который располагается по адресу mingw.org. 

  2. Скачайте на этом сайте установочный файл «mingw-get-inst.exe»/.

  3. После скачивания этого файла нужно запустить его установку на компьютер. Тут важно, чтобы в процессе установки MinGW у вас было стабильное подключение к интернету, так как в процессе установки этот файл будет «подкачивать» необходимые инструменты, которые вы отметите. Если интернет будет нестабильным, тогда есть риск, что MinGW установится неправильно и будет выдавать ошибки в своей работе.

  4. Итак, запустите установщик. Перед вами откроется окно, где нужно будет нажать кнопку «Next». 

  5. После этого появится одно информативное диалоговое окно, где вам сообщат, что программа устанавливается для всех пользователей компьютера. Тут тоже нужно нажать на кнопку «Next».

  6. Затем откроется еще одно окно, где вам нужно будет выбрать, какую версию программы вы желаете установить. Можете смело выбирать последнюю версию и нажимать кнопку «Next».

  7. Затем вам откроется окно, где нужно будет согласиться с лицензионным соглашением. После этого опять нужно нажать на кнопку «Next».

  8. Далее вам откроется окно, где можно будет указать путь установки программы или оставить все по умолчанию.

    Не забудьте нажать на кнопку «Next».

  9. Откроется еще одно окно, где можно будет настроить ярлыки будущей программы. Можно оставить все по умолчанию и нажать на кнопку «Next».

  10. После этого откроется одно из самых важных окон — окно выбора устанавливаемых компонентов. Здесь вы можете выбрать необходимый компилятор, инструментарий для разработки и утилиты командной строки. Необходимый инструмент отметьте «галочкой» и нажмите кнопку «Next».

  11. Затем вам откроется последнее окно перед инсталляцией инструментов, где напоследок вы сможете проверить, все ли вы выбрали правильно, а также соответствуют ли настройки желаемым. Если все хорошо, тогда смело жмите кнопку «Install».

  12. После этого откроется окно загрузки. Перед установкой компонентов произойдет их скачивание, поэтому нужно будет немного подождать. Именно для этого этапа необходимо, чтобы у вас был стабильный интернет. 

  13. В процессе загрузки в автоматическом режиме запускается консольное окно. В этом окне будет отображаться процесс инсталляции всех инструментов. Инсталляция может занять несколько минут, поэтому ждите.

  14. После окончания установки вам высветится информативное окно, что процесс завершен. Вам останется только нажать кнопку «Finish».

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

Заключение

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

MinGW — бесплатный С и С++ компилятор для Windows


MinGW — Minimalist GNU for Windows, это портированная под Windows коллекция бесплатных С и С++ компиляторов GCC, предназначенных для создания программного обеспечения для системы Windows.

Предоставляет полный набор инструментов для компилирования и линковки программ без использования каких либо платных библиотек или инструментов.

MinGW включает в себя GCC — компиляторы, ассемблер, линковщик, архиватор, комплект библиотек и заголовочных файлов, а также набор Unix-подобных утилит командной строки — MSYS.

Все утилиты предназначены для работы из командной строки, но могут использоваться такими популярными IDE как NetBeans, Eclipse и DevCPP, которые предоставляют графический интерфейс к компиляторам GCC.

Обзор GCC

GCC — GNU Compiler Collection, первый С компилятор с открытым исходным кодом, он был выпущен в 1987 г. Возможность создавать С++ программы была добавлена в 1992 г.

Впоследствии функциональность компилятора была расширена и включена поддержка таких языков программирования как Objective-C, Java, Fortran, ADA и другие.

GCC — очень мощный инструмент, распространяемый под лицензией GNU GPL (GNU General Public License), написан на языке С и в данный момент является кроссплатформенным — может работать практически под любой современной операционной системой и компилировать программы под различные типы процессоров, в том числе для микроконтроллеров, портативных устройств и 64-разрядных процессоров.

Установка MinGW

Официальный сайт MinGW http://www.mingw.org. Чтобы скачать комплект, перейдите на страницу http://sourceforge.net/downloads/mingw, вам понадобится файл «mingw-get-inst» с расширением EXE.

Для установки требуется подключение к сети интернет.



Запустите установщик, он скачает и установит все необходимые файлы.

Жмите «Next».



Диалог сообщает нам, что программа запущена администратором компьютера и будет установлена для всех пользователей.



На этом этапе укажем загружать последнюю версию программного обеспечения.



Соглашаемся с условиями лицензионного соглашения и жмём «Next».



Укажем путь для установки. Не рекомендуется устанавливать в директорию или субдиректорию имеющюю в своём имени пробелы.

Рзмещайте все файлы по стандартному пути, например, «C:\MinGW».



Настройка ярлыков, можно оставить как есть и нажать «Next».



Выбор компонентов для установки.

В данном случае выбраны компилятор С и С++, инструменты для разработки и комплект утилит командной строки — MSYS.



Подтверждение настроек.

Если всё выбрано правильно, жмём «Install».



Начало установки — ожидаем начала загрузки компонентов.



Автоматически запускается консольное окно, в котором отражается весь ход процесса — в данный момент загружаются списки пакетов.



В следующем окне мы можем наблюдать за прогрессом загрузки.



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

Закройте окно установщика — нажмите «Finish».

Проверим, готова ли операционная система для полноценной работы с MinGW. В свойствах компьютера на вкладке «Дополнительно» кликните по кнопке «Переменные среды».

Нам потребуется значение переменной PATH, там должны быть прописаны пути к папкам с исполняемыми файлами MinGW и MSYS, в данном случае это директории «C:\MinGW\bin» и «C:\MinGW\msys\1. 0\bin».

Если эти значения не были автоматически добавлены в переменную в процессе установки, допишите их вручную, добавте в начало строку «C:\MinGW\bin;C:\MinGW\msys\1.0\bin;», только без кавычек.

Если в вашей операционной системе отсутствует переменная PATH, то создайте её самостоятельно.

Теперь, когда все инструменты установлены, можно использовать GCC компиляторы в режиме командной строки или настроить их использование в своей IDE.


МинГВт-w64

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

Разработчики и сообщество очень активны и приветствуют новые вкладчики каждый месяц и простые установщики.

  • Предоставлено более миллиона строк заголовков, не считая сгенерированных, и регулярно расширяется для отслеживания новых API-интерфейсов Windows.
  • Все необходимое для компоновки и запуска вашего кода в Windows.
  • Winpthreads, библиотека pthreads для поддержки многопоточности C++11 и простой интеграция с существующим проектом.
  • Winstorecompat, незавершенная удобная библиотека, которая облегчает соответствие требованиям Магазина Windows.
  • Улучшенная и более быстрая математическая поддержка по сравнению с VisualStudio.

Инструменты

  • gendef: создание файлов Visual Studio .def из файлов .dll.
  • genidl: создавать файлы .idl из файлов .dll.
  • widl: скомпилировать файлы .idl.

Проекты друзей

Mingw-w64 много взаимодействует с другими проектами, чтобы помочь всем двигаться вперед. Пожертвования поступали и поступали из этих проектов:


Сигвин

РеактОС

Вино

MSYS2

Некоторые проекты с использованием Mingw-w64

  • кросс-компилятор Fedora
  • Нпакд
  • OpenSUSE
  • Win-сборки
  • Бархарт-УДТ
  • Блендер
  • Повышение
  • Ботан
  • Цемпл
  • Код :: Блоки
  • Инструменты DAE
  • ДевкитПро
  • Дисковые хэш-таблицы
  • Ecere SDK
  • Экига
  • Emerge Desktop
  • Просветление
  • Фактор
  • FFmpeg
  • ФЛТК
  • Решатель свободных ячеек
  • Freeverb3
  • GCC: Коллекция компиляторов GNU
  • GDB: отладчик проекта GNU
  • ГИМП
  • GNU Binutils
  • ГНУ SASL
  • GnuTLS
  • GraphicsMagick
  • ГТК+
  • Hexen II: Молот Тириона
  • iAuxSoft
  • ImageMagick
  • Японская ручка
  • Коллекция программного обеспечения KDE
  • libav
  • ЛибреОфис
  • libsndfile
  • либвирт
  • libvpx
  • Libxml2
  • MAME (Да, эмулятор аркады!)
  • Обычный Лисп МанКай
  • mCtrl
  • миль на галлон123
  • МПИР
  • MS MPI (переупакованный)
  • MS MPI
  • OCaml
  • OpenFOAM
  • Опен Лисп
  • OpenSC
  • OpenSSL
  • OpenTURNS
  • Perl (5. 12.0 и выше)
  • PostgreSQL
  • ниток
  • PToolsWin
  • QEMU
  • квт
  • КвейкСпазм
  • РЕМООД
  • Архиватор SBC
  • Интеллектуальный шумоподавитель изображения
  • смартмонтулс
  • Strawberry Perl (связки наборов инструментов C)
  • сильныйЛебедь
  • Проект R для статистических вычислений
  • Игрок Томагавк
  • ВидеоЛВС VLC
  • VSXu
  • Ву
  • wxPerl PPM
  • wxвиджеты
  • ЯфаРай
  • Злиб

загрузок — MinGW-w64

Сердцем проекта Mingw-w64 являются заголовки и библиотеки поддержки для запустить вывод GCC в Windows. Поскольку Mingw-w64 не является домом для GCC или binutils, несколько наборов установочных пакетов, которые объединяют они доступны.

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

Готовые наборы инструментов и пакеты

Версия Хост GCC/Mingw-w64 Версия Языки Дополнительное программное обеспечение в диспетчере пакетов

Арка Линукс
Arch Linux 12. 2.0/10.0.0 Ада, C, C++, Фортран, Obj-C, Obj-C++ много

Сигвин
Роллинг Windows 11.3.0/10.0.0 С, С++, Фортран, Obj-C много

Дебиан
Debian 9 (растянутый) 6.3.0/5.0.1 Ада, C, C++, Фортран, Obj-C, Obj-C++, OCaml 9 (gdb, libassuan, libgcrypt, libgpg-error, libksba, libnpth, nsis, win-iconv, zlib)
Дебиан 10 (Бастер) 8.3.0/6.0.0 Ада, C, C++, Фортран, Obj-C, Obj-C++
Debian 11 (яблочко) 10. 2.1/8.0.0

Федора
Федора 36 11.2.1/9.0.0 Ада, C, C++, Фортран, Obj-C, Obj-C++ много
Федора 37 12.2.1/10.0.0
ЛЛВМ-МинГВ 20220906 Windows, Linux LLVM 15.0.0/транк С, С++ сделать, Python
w64девкит 1.18.0 Windows 12.2.0/10.0.0 С, С++, Фортран 8 (бизибокс, cppcheck, теги, гдб, делать, насм, пакет-конфигурация, вим)

Макпорты
Роллинг macOS 12. 2.0/10.0.0 C, C++, Фортран, Obj-C, Obj-C++ 1 (нсис)
MingW-W64-сборки Роллинг Окна 12.2.0/10.0.0 С, С++, Фортран 4 (gdb, libiconf, python, zlib)

MSYS2
Роллинг Windows 12.2.0/транк Ада, C, C++, Фортран, Obj-C, Obj-C++, OCaml много
WinLibs.com Роллинг Windows 12.2.0 Ада, C, C++, Фортран, Obj-C, Obj-C++, Ассемблер Менеджер пакетов: работа в процессе (будет предлагать > 2500 пакетов)

Убунту
18. 04 Бионический бобр 7.3.0/5.0.3 Ада, C, C++, Фортран, Obj-C, Obj-C++ 9 (gdb, libassuan, libgcrypt, libgpg-error, libksba, libnpth, nsis, win-iconv, zlib)
20.04 Очаговая ямка 9.3.0/7.0.0
22.04 Джемми Медуза 10.3.0/8.0.0
22.10 Кинетический Куду 10.3.0/10.0.0
Arch Linux

Установка:

  • Репозиторий сообщества (toolchain)
  • Репозиторий AUR (дополнительные пакеты)
Убунту

Установка: через встроенный менеджер пакетов.

Пакеты

Mingw-w64 на Ubuntu

Cygwin

Cygwin — это Unix-подобная среда и командная строка. интерфейс для Microsoft Windows. Его ядром является библиотека cygwin1. dll, которая обеспечивает функциональность POSIX поверх Win32 API. Можно использовать как сборку среда, которая напрямую нацелена на Windows и от которой не зависит вывод на cygwin1.dll.

Установка выполняется через менеджер пакетов cygwin: setup.exe.

В составе многочисленных пакетов в cygwin присутствует кросс-компиляция цепочки инструментов, предназначенные как для 32-битных, так и для 64-битных систем; их имена начинаются с «mingw64-».

После установки их следует использовать в соответствии с общими подход кросс-компиляции.

Дебиан

Установка: через встроенный менеджер пакетов.

Пакеты Mingw-w64 в Debian

Федора

Установка: через встроенный менеджер пакетов.

LLVM-MinGW

LLVM-MinGW — это цепочка инструментов, созданная с помощью Clang, LLD, libc++, i686, x86_64, arm и aarch64 (ARM64), оба выпуска для работы как кросс-компилятор из Linux и для работы в Windows. Он поддерживает Дезинфектор адресов, дезинфицирующее средство неопределенного поведения и генерация отладки информация в формате PDB.

Установка: GitHub

w64девкит

w64devkit — это портативный комплект разработки C и C++ для x64 (и x86) Windows.

Инструменты в комплекте:

  • Mingw-w64 GCC: компиляторы, компоновщик, ассемблер
  • GDB: отладчик
  • GNU Make: стандартный инструмент сборки
  • busybox-w32 : стандартные утилиты unix, включая sh
  • Vim: мощный текстовый редактор
  • Универсальные Ctags: исходная навигация
  • NASM: ассемблер x86
  • Cppcheck: статический анализ кода

Набор инструментов включает pthreads, потоки C++11 и OpenMP. Все включено компоненты среды выполнения являются статическими.

Установка: GitHub

МакПортс

Чтобы установить только 32-битный или только 64-битный компилятор с зависимостями, используйте:

 порт sudo установить i686-w64-mingw32-gcc
порт sudo установить x86_64-w64-mingw32-gcc
 

Ярлык для установки обоих:

 порт sudo установить mingw-w64
 

Вот список пакетов Mingw-w64 на MacPorts.

Mingw строит

Установка: GitHub

WinLibs.com

Автономные сборки MinGW-w64+GCC для Windows, созданные с нуля (включая все зависимости) изначально для Windows для Windows.

Загрузки представляют собой архивные файлы ( .zip или .7z ). Установка не требуется, просто распакуйте архив и начните использовать программы в mingw32\bin или mingw64\bin . Это позволяет перемещать набор компиляторов и позволяет иметь несколько версий в одной системе.

Также содержит другие инструменты, в том числе: * GDB — отладчик проекта GNU * GNU Binutils — набор бинарных инструментов * GNU Make — инструмент, контролирующий генерацию исполняемых файлов и других файлов, не являющихся исходными кодами. * Yasm — проект модульного ассемблера Yasm * NASM — сетевой ассемблер * JWasm — бесплатный MASM-совместимый ассемблер

Вкусы: * отдельные пакеты для 32-битной (i686) и 64-битной (x86_64) Windows * отдельные пакеты для сборок MSVCRT и UCRT * только сборки потоков POSIX (которые также включают функции потоков Win32 API) * модель исключения: Dwarf для 32-битной (i686) и SEH для 64-битной (x86_64)

Установка: Загрузите с winlibs. com и распакуйте архив (установка не требуется).

MSYS2

Установка: GitHub

Источники

Тарболы для исходников mingw-w64 размещены на SourceForge.

Последняя версия из серии 10.x: 10.0.0 .

Последняя версия из серии 9.x: 9.0.0 .

Последняя версия из серии 8.x — 8.0.2 .

Последняя версия из серии 7.x — 7.0.0 .

Последняя версия из серии 6.x — 6.0.0 .

Последняя версия из серии 5.x — 5.0.4 .

В старой вики есть инструкции по сборке родной и крест цепочки инструментов.

Подробные сведения о том, как получить код mingw-w64 из Git и средство просмотра Git-web, см. доступен на SourceForge.

Несортированный дополнительный список

Дарвин/Mac OS X

Существующие двоичные файлы Darwin были собраны с помощью buildbot в 2013 году и связаны к ним можно найти на посвященном страница.