Система 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, pc, programming (install) Установка mingw-w64, pc, programming](https://images-on-off.com/images/128/ustanovkamingww64pcprogramming-328b0fb9.png)
3. Потім з'являється важливий екран настройки, де потрібно вибрати опції системи.
![Установка mingw-w64, pc, programming (programming) Установка mingw-w64, pc, programming](https://images-on-off.com/images/128/ustanovkamingww64pcprogramming-a09e5f17.png)
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, pc, programming (установка) Установка mingw-w64, pc, programming](https://images-on-off.com/images/128/ustanovkamingww64pcprogramming-49dbfd70.png)
5. Запускається процес закачування, який займе деякий час.
![Установка mingw-w64, pc, programming (programming) Установка mingw-w64, pc, programming](https://images-on-off.com/images/128/ustanovkamingww64pcprogramming-e8521338.png)
Після закінчення завантаження натисніть Next і після закінчення копіювання Finish.
![Установка mingw-w64, pc, programming (установка) Установка mingw-w64, pc, programming](https://images-on-off.com/images/128/ustanovkamingww64pcprogramming-09441f99.png)
Якщо Ви хочете, щоб утиліти з каталогу 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.