Пишу как заметку для себя, но мало-ли кому пригодится в случае возникновения вопросов о странностях сборки с этим чудом.
Компилятор можно(я бы предпочел) ставить не из оболочки msys, а из
файлика MinGW-W64-install.exe в начале списка.
Запускаем. Выбираем самую свежую версию.
Дальше вариантов выбора опций много и все они влияют на дальнейшее удовольствие работы с компилятором.
Если архитектура i686(x32), то можно выбрать 2 модели исключений : dwarf, sjlj
Если архитектура x86_64(x64), то можно выбрать уже seh и sjlj
Что это такое (
справедливо для C++, не C):
1)dwarf - обработка исключений не в стиле винды. Если произойдет эксепшен в какой-то сторонней длл(собранной msvc, например), то из своей мы его не поймаем. Чуть лучше sjlj по скорости. В целом не рекомендуется.
2)sjlj - работает везде как часы. срезает 20% скорости кода.
3)seh - родной способ для винды. Работает только под x64 => создать dll плагин для пилота невозможно. Для остального софта - пожалуйста.
Что из этого следует :
1)Выбрать sjlj - компилятор становится двухцелевым, т.е. на машине х32 можно собрать бинарник для х64 и наоборот, но при этом теряем 20% скорости используя С++(потери будут и при сборках x32->x32, x64->x64).
2)Выбрать seh - можем собирать только х64 бинарники без минуса к скорости и взаимодействия с пилотом.
3)Собирать по старинке MSVC - все работает быстро на seh, но идет привязка к версии винды.
4)Не использовать C++ вообще (only gcc). Быстро, модно, молодежно. Нет всех плюсов C++.
Threads можно выбрать что угодно. Я пока не нашел отличий, да и не искал.
После установки из папки взять mingw64 и закинуть в папку с msys2(удалить в ней перед этим mingw64).