Как поставить mingw на виндовс оффлайн

Обновлено: 06.07.2024

Часто при разработке приложений на C/C++ решаются небольшие задачи, для которых не требуется раздутая, тяжелая среда программирования MS Visual Studio. Как правило для решения подобных небольших задач вполне хватит редактора кода и компилятора, но при этом не хочется при каждой перекомпиляции вводить команды компилятору вручную в консоле. Хочется, чтобы этот процесс запускался по нажатии каких либо горячих клавиш. В этой статье я расскажу, как можно связать редактор VSCode с компилятором MinGW и настроить эту связку.

Первым делом нужно зайти на сайт MinGW MinGW | Minimalist GNU for Windows , перейти на вкладку download и скачать компилятор.

После того, как файл будет загружен, можно приступать к установке. После запуска инсталлятора появится окно с кнопкой install . Нажимаем на неё.

В следующем окне можно выбрать путь установки, нажав на кнопку Change, но лучше оставить путь по умолчанию. Если вы всё же решите изменить путь, то имейте ввиду, что путь не должен содержать пробелов и символов кириллицы. Для продолжения нажмите кнопку Continue.

На следующем шаге будут скачаны и установлены необходимые файлы.

После установки кликните кнопку Continue , откроется окно менеджера пакетов.

В этом окне необходимо отметить все имеющиеся пакеты для установки.

Для этого кликаем правой кнопкой мыши на каждом пакете и выбираем пункт Mark for installation .

В итоге должно получиться следующее.

Теперь осталось скачать и установить пакеты. Для этого выбираем меню Installation->Apply Changes.

В следующем окне нажимаем кнопку Apply.

Затем начнется загрузка пакетов.

После загрузки начнется установка пакетов. В этом окне можно установить галочку Close dialogue… для того. чтобы окно автоматически закрылось после установки пакетов.

В конце у вас должно остаться такое окно.

На этом установка компилятора завершена. Теперь надо добавить путь к компилятору в переменную path . Для этого зайдем в папку с установленным MinGW , перейдем в папку bin и скопируем путь.

Далее щелкнем правой кнопкой мыши на иконке “ мой компьютер ” и выберем пункт меню “ Свойства ”.

Затем заходим в “ дополнительные параметры системы ”.

В следующем окне кликаем по кнопке “ переменные среды ”.

После этого в разделе “ Системные переменные ” находим переменную path, выбираем её. жмем кнопку изменить.

В открывшемся окне надо в конце поставить точку с запятой и затем вставить наш путь до папки bin .

После внесенных изменений жмем кнопку ОК . Должно получиться в итоге следующее:

Теперь проверим, применились ли внесенные изменения. Для этого запускаем окно “ выполнить ”. Это можно сделать из меню “ пуск ” или нажав сочетание клавиш WINDOWS+R . В открывшемся окне вводим команду “ cmd ” и жмем ОК .

Запустится командная строка . В ней надо набрать команду “ gcc --version ” и нажать ENTER .

Теперь откроем VSCode , создадим для теста файл main.c и напишем стандартную программу. выводящую на экран строку Hello World .

Теперь установим расширение для языков C и С++ . Для этого перейдем в расширения и в поиске наберем C++ , после чего выберем и установим первое найденное расширение для языков С и С++ от Microsoft .

После того, как установится расширение, надо создать json файл с настройками компилятора. Для этого нажимаем сочетание клавиш CTRL+SHIFT+P , в открывшемся окне вводим команду
Task: Configure Task ” и нажимаем ENTER .

Далее выбираем пункт “ Создать файл Tasks.json из шаблона ”.

На следующем шаге выбираем пункт Other и жмем ENTER .

Как скачать оффлайн-установщик MinGW-w64? Официальный сайт и раздел проекта на SourceForge предлагают онлайновый установщик, который сам догружает пакеты.
С другой стороны, рассматривая случай невозможности оффлайн-устанощика MinGW-w64, в том же разделе проекта на SourseForge имеется каталог files, в котором присутствуют 8 архивов в формате 7z для версии MinGW-W64 GCC-7.1.0:

x86_64-posix-sjlj
x86_64-posix-seh
x86_64-win32-sjlj
x86_64-win32-seh
i686-posix-sjlj
i686-posix-dwarf
i686-win32-sjlj
i686-win32-dwarf

Как видно, они различаются аппаратной платформой (i686, x86_64), программной (posix, win32) и способом обработки ошибок (sjlj,seh,dwarf). Как разобраться в этих параметрах, что из этих архивов скачать для получения работающего порта gcc под 64-разрядной Windows 8/8.1/10 (разработка планируется и под Windows, и под Linux)? Достаточно ли для получения компиляторов со всех языков, поддерживаемых GCC просто распаковать архивы или требуется ещё какая-либо настройка, и если да, то какая?

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Библиотеки mingw-w64
Папка lib содержит 1334 файла с расширением .a. Вот некоторые из них: libadvapi32.a.

[CLion] настройка дебагера на Windows 10. Не работает дебаг с профилем Visual Studio или CMake с профилем MinGW
Сделал скриншоты с настройками. Как это дело настроить? На Mac OS поставил, всё работает из.

Mingw-w64 MinGW TDM-GCC
Всем привет. Хочу понять, существует ли принципиальная разница между Mingw-w64, MinGW и.

MinGW-w64 и Qt
Узнал, что есть такая штука, как mingw 64bit. И тут мне стало интересно, будет ли qt поддерживать.

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

Может кто-нибудь подсказать что то, а то неразбериха с этими версиями. До этого я скачивал sjlj версии
тут, т.е. последняя версия 8.1.0. А после этого новые версии где? Онлайн-установщик не интересует, только полный (x32 и x64 версии).

мощный и всегда свежий репозиторий(на текущий 2021г.)
есть Mingw и Clang .

например, захотели вы заюзать SFML,
вбили в консоле:
pacman -Sy mingw-w64-x86_64-sfml
через минуту эта либа со всеми её зависимостями в вашем распоряжении,
прописываете нужные *.a в вашей ИДЕ/системе_сборки и ваш код уже готов к компиляции.

Есть ли способ установить mingw-w64 в автономном режиме? Я попробовал много официальных источников, и все они, похоже, нуждаются в каком-то интернет-доступе. Я ищу что-то, что работает для систем x32 и x64. Я попытался взглянуть на официальный репозиторий, но я не уверен, какие файлы мне нужны для этой задачи.

Несмотря на то, что следующее не полностью протестировано, автономный установщик кажется ненужным. Основываясь на некоторых снимках экрана для отчета об ошибке, он-лайн установщик задает следующие вопросы.

Первые пять параметров используются для выбора одного пакета загрузки. Я не знаю о вас, но я понятия не имею, что выбрать для потоков и исключений. Поставленные потоки posix, основанные исключительно на статистике загрузки, используются более чем в два раза больше, чем win32, seh кажется гораздо более популярным для 64-битного, карликового для 32-битного, sjlj кажется довольно нелюбимым. Я предполагаю, что 32-бит с posix и карликом по умолчанию.

Чтобы определить, что такое выбор, он использует файл repository.txt из эту папку. Это только текстовый файл, разделенный на трубы, - 5 полей для этих 5 основных опций, плюс один для URL загружаемого пакета.

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

Сами бинарные пакеты находятся в подпапках этой папки (Win32) и этой папки (Win64).

Я не уверен, для чего предназначены ярлыки, предлагаемые установщиком для создания - это MinGW-w64, а не MSYS или MSYS2, поэтому нет оболочки bash для обеспечения ярлыков. Вероятно, это просто ярлыки командной строки Windows с установленным путем.

Кроме этой проблемы с ярлыками, все, что вы делаете, распаковывает пакет в подходящую папку, убедитесь, что папка mingw32\bin или mingw64\bin находится на пути как-то, и вам нужно сделать это. Я уже тестировал это с одним из 32-битных пакетов gcc-5.4.0 - g++ скомпилировал привет-мир без проблем.

В подпапках есть альтернативные сторонние сборки, начиная с одного шага дальше здесь (32 бит) и подобных подпапок разных целевых целевых объектов * папок для 64-битных и других сборок. ray_linn имеет различные сборки, которые включают поддержку Ada (и Objective C/С++?). rubenvb имеет несколько старых версий GCC и Clang. dongsheng-daily выглядит как ежедневная сборка, даже включая экспериментальный GCC 7.

Если вам тоже нужен MSYS, дайте мне знать в комментариях. Я установил этот автономный (вместе с MinGW32) в течение некоторого времени, поэтому у меня есть список пакетов для установки. Вам нужно довольно много пакетов, это боль, получая их от SourceForge, но как только у вас есть их, они в основном просто распаковываются снова. Там есть небольшая "postinstall" - какой-то файл для создания, в основном, где можно найти MinGW, а также создание ярлыка для оболочки. У меня есть сценарии AutoIt, чтобы сделать это - немного беспорядок, используя несоответствующие методы, потому что они были тем, что я знал в AutoIt в то время, но они работают нормально.

Там MSYS2, но на первый взгляд, что другая проблема, связанная с онлайн-установкой, с использованием диспетчера пакетов pacman - вероятно, очень удобна, но не для меньшинства, которое не может его использовать.


В общем-то, даже в Microsoft уже признали проблему и сделали WSL (Windows Subsystem for Linux), чтобы запускать те приложения, у которых нативных версий под Windows нет. Однако если ты хочешь сделать свою программу доступной для широкой аудитории, то WSL вовсе не панацея, поскольку у среднего пользователя эта система вряд ли установлена и у нативных приложений возможностей для интеграции с Windows все равно больше.

Во многих случаях камень преткновения — не сам код программы, а система сборки. Если ты используешь кросс-платформенные библиотеки и не вызываешь специфичные функции POSIX, портирование может вообще не требоваться. Главное — собрать исполняемые файлы.

Сборка-то обычно и зависит от окружения POSIX. Если ты используешь GNU autotools, то скрипт ./configure у тебя на Bourne shell. CMake и ряд других систем сборки умеют генерировать скрипты под целевую ОС, но остается последняя «маленькая» проблема — нужна проприетарная и не бесплатная ОС. Есть вариант переложить задачу ее развертывания и лицензирования на кого-то другого и обратиться к сервису вроде Appveyor. Но можно вместо этого воспользоваться способностью GCC к кросс-компиляции и собирать программы на хосте с Linux (или macOS).

GNU и Windows

Для сборки программ с помощью GNU toolchain на Windows часто используют два проекта: Cygwin и MinGW + MSYS. У них схожие цели, но разные детали реализации. Давай разбираться.

Cygwin

Cygwin — самая полная реализация окружения GNU для Windows. Он предоставляет большую часть POSIX API в виде библиотеки, что позволяет собирать программы из UNIX без портирования, если только им не требуется семантика UNIX. Яркий пример — демоны, им нужен fork() и сигналы, которых нет в Windows, да и службы Windows устроены совсем иначе.

Кроме библиотеки, дистрибутив содержит набор классических команд UNIX и терминал. Реализации команд используют эту библиотеку и поддерживают некоторые возможности UNIX, такие как регистрозависимые имена файлов.

Целевой способ использования: если нет желания или возможности портировать программу на Windows или использовать только платформенно независимые API, ее можно собрать «под Cygwin», ценой зависимости от cygwin1.dll и относительной изоляции от всей остальной системы.

Многие люди ставили и продолжают ставить окружение Cygwin, чтобы иметь возможность использовать классические команды UNIX на Windows. Некоторые разработчики также включают Cygwin в инструкции для сборки своих программ под Windows, хотя сама программа не связывается с cygwin1.dll . Для этой цели может быть более правильно использовать MSYS.

MinGW и MSYS

Если цель Cygwin — сделать возможной сборку немодифицированных приложений на Windows ценой внешней зависимости, то цель MinGW + MSYS — производить приложения без внешних зависимостей.

MinGW и MSYS — это независимые пакеты, но их часто путают и смешивают друг с другом (а часто путают и с Cygwin). Можно сказать, что MinGW — это эквивалент GCC и binutils, а MSYS — расширенный эквивалент coreutils.

Начнем с MSYS. MSYS — это более «нативная» и легковесная альтернатива Cygwin. Этот пакет включает библиотеку с реализациями функций POSIX, но она предназначена для внутреннего пользования, и авторы категорически не рекомендуют связывать с ней свои приложения.

Библиотека MSYS не реализует UNIX поверх Windows, а следует соглашениям Windows — к примеру, сознательно не учитывает регистр букв в путях к файлам. Главная цель MSYS — предоставить нужные для скриптов сборки программы вроде Bourne shell, make и прочее, что обычно требуется для autotools.

MinGW содержит версии GCC и binutils (ассемблер as, компоновщик ld и так далее), которые производят исполняемые файлы для Windows в формате PE/COFF. Здесь мы и подходим к ключевому моменту: MinGW, как и все остальные части GNU toolchain, такой же платформенно независимый проект.

Кросс-компиляция в GNU toolchain уже давно обычное дело, и в GCC целевая платформа и хост независимы друг от друга. Можно запускать GCC на Linux для x86 и собирать программы для Linux на ARM, или наоборот. Совпадать не обязаны не только рабочая и целевая архитектуры процессора. Точно так же не обязаны совпадать даже ОС и формат исполняемого файла.

Ставим MinGW

Авторы многих дистрибутивов GNU/Linux уже постарались за нас, так что многие кросс-версии GCC, включая MinGW, можно поставить из репозиториев.

Например, в Fedora:

Если ты используешь macOS, то MinGW можно поставить из Homebrew: brew install mingw-w64 .

MinGW-w64, несмотря на название, поддерживает и Win32, и Win64. Это форк MinGW, который создали в первую очередь для реализации недостающей в оригинальном проекте поддержки Win64, отсюда и название.

В Fedora также присутствует ряд готовых кросс-версий популярных библиотек, например mingw32-qt .

Hello World

Для демонстрации соберем традиционный hello world. У кросс-версий GCC всегда есть префикс, для MinGW используются префиксы i686-w64-mingw32 и x86_64-w64-mingw32 .

Тестирование кросс-компилированных программ для других архитектур — непростая задача, но, поскольку наша целевая платформа — Windows на x86, мы легко можем протестировать их в Wine:

Продолжение доступно только участникам

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Читайте также: