Почему происходит ошибка установки mingw windows
Система 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.

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

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. На этом шаге нужно просто выбрать каталог установки. Оставьте все по умолчанию.

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

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

Если Вы хотите, чтобы утилиты из каталога 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х.
Ошибка при установке mingw
Ошибка при сборке библиотеки MinGW
Добрый день, уважаемые форумчани. Пытаюсь создать проект по этой инструкции.
Ошибка на компиляторе MinGW при сборке структуры
Помогите, пожалуйста, не знаю что делать. Вот такой простенький код struct abc < int a; .
Ошибка при установке Visual C++ Express
Помогите с установкой. В строке состояния пишет — Восстановление соединения с сервером (попытка 1.
Регистрация: 19.06.2017
Сообщений: 28
Сообщение от CplusplusBegin 
Но зачем?
Новых фишек gcc там все равно нет — тут нужен именно пингвин.
А если просто mingw — то есть dev-c++, там и mingw, и иде не совсем плохая, и собирает x32 и x64.
Регистрация: 13.06.2017
Сообщений: 8
Прохожу онлайн курс. Там написано установить mingw)) Сейчас попробую установить Dev-C++
3434 / 2813 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
Сообщение от CplusplusBegin 
Сейчас попробую установить Dev-C++
Лучше Code Blocks.
Сообщение от nonenever 
иде не совсем плохая
а очень плохая.
теперь ждем появления новых тем:
«дев ++. нефига не работает»
| Меню пользователя @ hoggy |
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
CplusplusBegin, скачай отсюда MinGW-w64 — for 32 and 64 bit Windows архив, подключи его в своей IDE, и не парся. С IDE рекомендую Clion или QtCreator.
Регистрация: 11.04.2018
Сообщений: 58
notAll, по какой причине может не устанавливаться?
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Ошибка при установке Visual Studio 2010
не удается открыть файл данных C:Users\Викуша\AppData\Local\Tmps\SIT33758.tmp\defFactory.dat Как.
Ошибка при установке компилятора clang(LLVM) windows 10
Стоял 3.7 LLVM, работал. Установил 3.8(3.7 удалился при установке) и я схватил сию ошибку, что во.

ошибка компиляции в MinGW
Здравствуйте, не могу скомпилировать код в MinGW, #include <stdio.h> #include <stdlib.h>.
Сборка Mingw в Windows своими руками

В сети можно найти много описаний сборки mingw и GNU утилит под ним. Я тоже решил написать свой вариант, так как во-первых он на русском. Во-вторых используются последние стабильные исходники (по состоянию на 27.01.2011). В третьих добавлена оптимизация циклов (graphite loop optimizations). В четвертых я описываю причины выбора тех или иных опций конфигурации исходников. В пятых, чтобы не забыть.
Зачем собирать mingw самому?
- Для того, чтобы сконфигурировать компоненты так как нужно мне, а не той тысяче пользователей, которые скачивают стандартный пакет с официального сайта.
- Чтобы я сам определял какие компоненты мне нужны в виде shared библиотек с dll-ками, а какие я линкую статически.
- Чтобы быть уверенным, что gcc работает максимально эффективно.
- Чтобы исключить возможные закладки в исполняемые модули.
- Чтобы лучше понять как собираются и устанавливаются GNU утилиты.
Что понадобится?
Как ни странно, но для сборки mingw нужен сам mingw. Товарищи постарались и сделали аккуратную программу установки, которая сама скачает и установит нужные пакеты. Она лежит на официальном сайте.
Помимо самого mingw при установке выбираем «C++ Compiler» и «MinGW Developer ToolKit». Ставим в C:\MinGW.
Не обойтись без терпения, настойчивости и удачи!
Сборка
Создаем на самом быстром винчейстере рабочую папочку C:\mbuild. Все исходники складываем в C:\mbuild\distrib. Выращивать mingw будем в C:\mbuild\release. Запускаем скачанный msys…
cd /c/mbuild
Небольшое замечание. В большинстве инструкций сказано сложить исходники gmp, mpfr и mpc в папку к gcc — он соберет их автоматически. Мы так делать не будем, потому что ходим прикрутить к gcc CLooP, а он зависит от gmp. То есть нам придется собирать gmp до того, как мы приступим к конфигурации gcc.
GMP
tar -xjf distrib/gmp-5.0.1.tar.bz2 && cd gmp-5.0.1
mkdir build && cd build
../configure —prefix=’/c/mbuild/release’ —enable-cxx —disable-static —enable-shared CPPFLAGS=’-fexceptions’ &>config.my.log
make -j4 &>make.my.log
make install &>install.my.log
- —enable-cxx CPPFLAGS=’-fexceptions’ — Обязательны для корректной сборки ppl
- —disable-static —enable-shared — В windows нельзя одновременно иметь shared и static версии, иначе сборка дальнейших компонентов может завершиться ошибкой. Будем собирать shared версии. Не волнуйтесь, на компилируемые с помощью mingw программы зависимость не переносится.
PPL
tar -xjf ../../distrib/ppl-0.11.tar.bz2 && cd ppl-0.11
mkdir build && cd build
../configure —prefix=’/c/mbuild/release’ —disable-static —enable-shared —disable-nls —enable-threads —disable-debugging —with-gmp-prefix=/c/mbuild/release —with-cflags=’-s -O2′ —with-cxxflags=’-s -O2′ &>config.my.log
make -j4 &>make.my.log
make install &>install.my.log
- —disable-static —enable-shared — какой вариант линковки мы выбрали для gmp такой же следует выбрать и для ppl.
- —disable-nls — отключая National Language Support не будем требовать от приложения умения общаться на русском.
- —enable-threads — создаваемый mingw я буду использовать для компиляции многопоточных приложений.
- —disable-debugging — отладочная информация ни к чему — она занимает лишнее место.
- —with-gmp-prefix — сообщит где искать gmp.
- —with-cflags —with-cxxflags — некоторая оптимизация.
CLooG/PPL
tar -zxf ../distrib/clog-ppl-0.15.10.tar.gz
cd cloog-ppl-0.15.10
mkdir build && cd build
../configure —prefix=’/c/mbuild/release’ —disable-static —enable-shared —with-ppl=/c/mbuild/release —with-gmp=/c/mbuild/release CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make &>make.my.log
Тут имеется неприятная часть со скриптами конфигурации. Их почему-то просто нет. В логе make.my.log сообщается, что папка m4 отсутствует. Я не разбираюсь в причинах ее отсутствия. Просто копирую ее из ppl-0.11. Благо там имеются нужные скрипты.
make &>make.my.log
make install &>install.my.log
Опции понятны из предыдущих описаний.
MPFR
tar -xjf distrib/mpfr-3.0.0.tar.bz2 && cd mpfr-3.0.0
mkdir build && cd build
../configure —prefix=’/c/mbuild/release’ —disable-static —enable-shared —enable-thread-safe —with-gmp=/c/mbuild/release CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make -j4 &>make.my.log
make install &>install.my.log
MPC
tar -xzf distrib/mpc-0.8.2.tar.gz
cd mpc-0.8.2
mkdir build && cd build
../configure —prefix=/c/mbuild/release —disable-static —enable-shared —with-gmp=/c/mbuild/release —with-mpfr=/c/mbuild/release CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make -j4 &>make.my.log
make install &>install.my.log
LIBICONV
tar -xzf distrib/libiconv-1.13.1.tar.gz && cd libiconv-1.13.1
mkdir build && cd build
../configure —prefix=/c/mbuild/release —enable-shared —disable-static —disable-nls CFLAGS=’-s -O2 -mno-cygwin’ CPPFLAGS=’-s -O2 -mno-cygwin’ &>confgi.my.log
make -j4 &>make.my.log
make install &>install.my.log
- CFLAGS=’-mno-cygwin’ Для того, чтобы libiconv корректно собирался под msys следует явно указать, что мы используем не CygWin.
BINUTILS
tar -xjf distrib/binutils-2.21.tar.bz2 && cd binutils-2.21
mkdir build && cd build
../configure —prefix=/c/mbuild/release —disable-nls —enable-threads —with-gmp=/c/mbuild/release —with-mpc=/c/mbuild/release —with-mpfr=/c/mbuild/release —with-ppl=/c/mbuild/release —disable-ppl-version-check —with-cloog=/c/mbuild/release —disable-cloog-version-check CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make -j4 &>make.my.log
make install &>install.my.log
- —disable-ppl-version-check —disable-cloog-version-check Когда то столкнулся с тем, что скрипты проверки версии ppl искали именно 10 версию, а не выше, по инерции использую теперь эти опции, хотя кое-где ситуацию уже исправили. Если есть желание можете покопаться в configure скрипте, посмотрев обработку ppl_version_minor. Binutils-2.21 конфигурируется нормально, а gcc-4.5.2 — нет.
INCLUDE
Распаковываем C:\mbuild\distrib\w32api-3.14-mingw32-src.tar.lzma в C:\mbuild\w32api. Именно в w32api, чтобы ее мог найти mingwrt при сборке.
tar -xzf distrib/mingwrt-3.18-mingw32-src.tar.gz
cp -r w32api/include /c/mbuid/release
cp -r mingwrt-3.18-mingw32/include /c/mbuild/release
Чтобы верно находились все длл-ки при конфигурации, добавим путь к релизу в PATH
export PATH= $PATH:/c/mbuild/release
GCC
tar -xjf gcc-4.5.2.tar.bz2
cd gcc-4.5.2
mkdir build && cd build
../configure —prefix=/c/mbuild/release —enable-shared=libstdc++ —enable-threads —enable-version-specific-runtime-libs —enable-languages=c,c++ —with-dwarf2 —disable-sjlj-exceptions —disable-win32-registry —disable-werror —disable-nls —disable-multilib —with-gmp=/c/mbuild/release —with-ppl=/c/mbuild/release —disable-ppl-version-check —with-cloog=/c/mbuild/release —disable-cloog-version-check —with-mpfr=/c/mbuild/release —with-mpc=/c/mbuild/release —enable-libgomp —with-libiconv-prefix=/c/mbuild/release —enable-libstdcxx-debug —enable-cxx-flags=’-s -O2′ —with-boot-ldflags=’-s’ &>config.my.log
make -j4 BOOT_CFLAGS=’-s -O2′ BOOT_CPPFLAGS=’-s -O2′ &>make.my.log
- —enable-shared=libstdc++ — Обычно я компилирую библиотеки статически, но иногда приходится использовать stlport вместо родной STL, поэтому ее сделаем орываемой.
- —enable-version-specific-runtime-libs Влияет на расположение заголовочных файлов и библиотек runtime. Эта опция нужна для того, чтобы обеспечить возможность использования нескольких версий runtime библиотек с одной mingw.
- —enable-languages=c,c++ — собираем компилятор для языков C и C++.
- —with-dwarf2 — отладочная информация dwarf-2
- —disable-sjlj-exceptions — отключить sjlj исключения
- —disable-win32-registry — модно настроить gcc таким образом, чтобы информацию об include папке он искал в реестре windows. Нас это не интересует.
- —disable-werror — werror хорошо, когда его задаешь вручную.
- —disable-nls эта опция не влияет на locale и все что связано с широкими символами в mingw. Их поддержка будет неполной (например некорректно работает получение текущей пользовательской локали — std::locale(«») всегда вернет locale(«C»)) даже если мы разрешим NLS. Эта опция влияет лишь на сообщения компилятора. Лично мне было бы непривычно, если бы он заговорил по русски.
- —disable-multilib — будем использовать наш компилятор для создания windows программ и только
- —enable-libstdcxx-debug эта опция позволяет помимо основной версии stdc++ библиотеки иметь отладочную, чтобы можно было во время отладки путешествовать и по библиотечным функциям.
cd i686-pc-mingw/libstdc++-v3
make -j4 CFLAGS=’-s -O2′ CXXFLAGS=’-s -O2′ &>make.my.log
Тут мы несколько смухлевали. В реальности (в том числе, когда бы собираете кросс-компилятор) вам придется собрать сначала сам gcc с помощью make all-gcc, затем runtime и только потом завершить сборку всего gcc. Процесс описан, к примеру тут. Но мы не будем заморачиваться, так как в этом конкретном случае все работает и так.
cd ../../
make install &>install.my.log
К сожалению мне никогда не удавалось скомпилить gcc под mingw с использованием профилирования (make profiledbootstrap) — процесс завершался с ошибками. Чаще всего segmentation fault компилятора. А жаль… говорят прирост в скорости компиляции ~7%.
Runtime и W32API
w32api нужно собирать с помощью нового gcc. Для этого в файле fstab (поумолчанию C:\MinGW\msys\1.0\etc\fstab) меняем C:\MinGW на C:\mbuild\release и запускаем новый msys. В этом экземпляре msys используется вновьсобранный gcc. Но так как от зависимостей мы еще не избавились, нам придется сообщить msys где искать dll-ки старого mingw:
export PATH=$PATH:/c/MinGW/bin
W32API
cd ../../w32api
mkdir build && cd build
../configure —prefix=/c/mbuild/release CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make &>make.my.log
make install &>install.my.log
MingwRT
tar -xzf distrib/mingwrt-3.18-mingw32-src.tar.gz && cd mingwrt-3.18-mingw32-src
mkdir build && cd build
../configure —prefix=/c/mbuild/release CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make &>make.my.log
make install &>install.my.log
Из-за того, что gmp собирался не родным gcc он, скорее всего, имеет зависимости от libstdc++.dll и libgcc_s_dw2-1.dll. Первая была собрана с родным gcc, вторую придется скопировать из старого mingw. Как вариант можно пересобрать gmp в новом gcc для избавления от завимисотей.
Для уменьшения размера можете смело поудалять ненужные папки. Например share/doc.
Почти все. Для комфортной работы нам надо еще собрать make.
MAKE
tar -xjf distrib/make-3.82.tar.bz2 && cd make-3.82
./configure —disable-nls —with-libiconv-prefix=’/mingw’ CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make -j4 &>make.my.log
cp make.exe /c/mbuild/release/bin/mingw32-make.exe
Теперь все. в папочке C:\mbuild\release получили свой аккуратный mingw. Добавляем пакетов по вкусу, оборачиваем в аккуратный скрипт и получим что-то вроде nuwen mingw. Удачных сборок!
- mingw32-autoconf
- mingw32-automake
- mingw32-autotools
- mingw32-basic-dsdtar
- mingw32-bzip2
- mingw32-cygutils
- mingw32-expat
- mingw32-gdb
- mingw32-gendef
- mingw32-gettext
- mingw32-libarchive
- mingw32-libtool
- mingw32-mingw-get
- mingw32-mingw-utils
- mingw32-package-list
- mingw32-pdcurses
- mingw32-pexports
- mingw32-popt
- mingw32-pthreads-w32
- mingw32-xz
Установка Code:Blocks и компилятора MinGW

Здравствуйте, уважаемые читатели! Здесь пойдет речь об установке среды разработки программ на C++ — Code::Blocks. Данная программа бесплатная, но от этого она не становится мало функциональной пустышкой. В ней присутствуют множество функций для разработки небольших программ на C++, а также серьезных проектов. Вместе с ней в комплекте можно скачать компилятор MinGW, который необходим для компиляции ваших программ.
Скачивание необходимых файлов
В начале нам нужно скачать на компьютер файл необходимый для установки Code::Blocks и MinGW. Благо, на официальном сайте Code::Blocks, нам предоставляют возможность скачать и установить оба компонента одним кли