对于MinGW,gcc 4.7.2中存在一个已知错误,该错误导致在同一类中涉及虚拟和非虚拟继承的某些情况下将无效的this
指针传递给虚函数。详情见this Bugzilla page。
这个错误让我感到困扰,我需要为我正在编写的Qt应用程序修复它。 Bugzilla页面中有一个补丁,但是如何获得包含此补丁的工作版本?据我所知,GNU下载页面仅提供原始的错误版本。 4.7.2之后的下一版gcc是4.8.0,我无法使用它,因为它与我的Qt库不兼容。
在应用补丁后,我是否必须从源代码构建gcc?如果可以的话,我当然希望避免这种情况!
答案 0 :(得分:1)
我接受了Haroogan的建议(从源头重建Qt),但使用GCC 4.8.0而不是GCC 4.7.1。有效!至少,我已经使用它三天了,它还没有引起任何意外。唯一的故障是GCC 4.8.0中的内部头文件,需要this patch应用于它们。除此之外,它一帆风顺(即它只花了我两个晚上)。
已更新以添加:我现在注意到调试器存在一些问题。所以也许我说得太快了!