Почему компиляторы серии gcc 4.xx не установлены MinGW по умолчанию?

В настоящее время MinGW по умолчанию устанавливает только серию 3.xx компилятора gcc. Тем не менее, похоже, что серия компиляторов серии 4.xx уже давно вышла, и, как уже упоминалось, похоже, работает просто отлично. Есть ли какая-то причина, по которой он еще не перешел на версии 4.xx, и какая-то причина, по которой мне не следует использовать более новые версии gcc?

3 ответа

Решение

C++ ABI GCC4 изменился по сравнению с GCC3 и включает в себя множество новых функций (таких как векторизация дерева), которые многие по-прежнему считают "экспериментальными". По этой причине все еще есть несколько дистрибутивов Linux, использующих GCC3.

Установщик сборок TDM GCC/MinGW32 включает в себя gcc 4.4.x и все основные двоичные пакеты, необходимые для базовой разработки Windows, включая gdb. Он широко используется без каких-либо необычных проблем.

Проблема заключается в том, что они изменили механизм обработки исключений таким образом, что это нарушает ABI. Это означает, что вы не можете (например) вставить новый компилятор и продолжать использовать старые объектные файлы и / или библиотеки. Вы должны перекомпилировать все из исходного кода, чтобы получить рабочие результаты вообще.

Другие вопросы по тегам