Известна ошибка в gcc 4.7.2 для MinGW, которая вызывает недопустимый указатель this
, который должен быть передан виртуальной функции при определенных обстоятельствах, которые включают виртуальное и не виртуальное наследование в том же классе , Подробная информация находится на this Bugzilla page.gcc 4.7.2 ошибка виртуальной функции
Эта ошибка укусила меня, и мне нужно исправить ее для приложения Qt, которое я пишу. На странице Bugzilla есть патч, но как получить рабочую версию, которая включает этот патч? Насколько я могу судить, страница загрузки GNU предоставляет только оригинальную, глючную версию. И следующая версия gcc после 4.7.2 - 4.8.0, которую я не могу использовать, потому что это будет несовместимо с моими Qt-библиотеками.
Должен ли я построить gcc из источников после применения патча? Я, конечно, хочу этого избежать, если смогу!
Альтернативой исправлению компилятора может быть обход ошибки в вашем коде (например, если вы не используете комбинацию функций, вызывающих ошибку). Не знаете, насколько это возможно в вашем случае? – NPE
Нет, боюсь, нет. Даже создание gcc из источника - более привлекательное предложение, чем это: -/ – TonyK
Ouch. Надеюсь, вы найдете простое решение (FWIW, я помню, как давно создал gcc, и это было довольно безболезненно). – NPE