Решён
Для чего нужен MinGW при разработке на Windows?

Николай Сишник C/C++
2.1k
4

Начал изучать C++ и постоянно натыкаюсь на упоминание MinGW в туториалах. Устанавливал Code::Blocks, там он шел в комплекте.

Объясните, пожалуйста, для чего нужен MinGW? Это компилятор или что то еще? Чем отличается от обычного Visual Studio? Можно ли без него обойтись?

Решение
61
Эксперт • 2 ответа

MinGW - это Minimalist GNU for Windows. Порт набора компиляторов GCC (изначально unix-системы) на винду.

Включает компилятор gcc/g++, линкер, отладчик gdb и набор системных библиотек, позволяющих собирать нативные .exe файлы без зависимости от unix-окружения типа Cygwin.

Отличие от Visual Studio:

  • VS использует собственный компилятор MSVC (Microsoft Visual C++).
  • MinGW дает тебе GCC - свободный компилятор с открытым исходником.
  • Код, скомпиленный через MinGW, технически более переносим на Linux/MacOS (при условии что не использовались WinAPI).

Обойтись можно. Если пишешь только под винду - бери VS. Если нужна кросс-платформенность или ты привык к GCC - используй MinGW.

Аватар Николай Сишник

Спасибо! Теперь понятно почему в Code::Blocks он идет по дефолту.

28
Участник • 8 ответов

Историческая справка: в нулевые годы MinGW был единственным способом получить нормальный C++ компилятор на Windows бесплатно, потому что Visual Studio тогда стоила космических денег. Сейчас Community Edition VS бесплатная для студентов и мелких проектов, поэтому MinGW утратил большую часть актуальности.

Но он все еще жив благодаря:

  1. Opensource-сообществу (люди принципиально не хотят зависеть от Microsoft).
  2. Кросс-компиляции (можно собирать .exe для Windows прямо из Linux через MinGW-w64).
  3. Обратной совместимости (куча легаси-проектов собирается именно через него).

Если ты новичок и пишешь учебные программки - забей на MinGW, ставь Visual Studio 2022 Community и не парься.

Написать ответ

Премодерация гостей

Вы отвечаете как гость. Ваш ответ будет скрыт до проверки модератором. Чтобы ответ появился сразу и вы получали репутацию — войдите в аккаунт.

Будьте вежливы и соблюдайте правила платформы.