【发布时间】:2013-03-24 10:48:13
【问题描述】:
在 gcc 4.7.2 for MinGW 中存在一个已知错误,导致在同一类中涉及虚拟和非虚拟继承的某些情况下将无效的this 指针传递给虚拟函数。详情请见this Bugzilla page。
这个 bug 困扰了我,我需要为我正在编写的 Qt 应用程序修复它。 Bugzilla 页面中有一个补丁,但我如何获得包含此补丁的工作版本?据我所知,GNU 下载页面只提供原始的、有缺陷的版本。而且4.7.2之后的gcc的下一个版本是4.8.0,我不能用,因为它会和我的Qt库不兼容。
在应用补丁后,我是否必须从源代码构建 gcc?如果可以的话,我当然想避免这种情况!
【问题讨论】:
-
修复编译器的替代方法可能是解决代码中的错误(例如,不使用触发错误的功能组合)。不知道你的情况是否可行?
-
不,恐怕不会。甚至从源代码构建 gcc 也比这更有吸引力:-/
-
哎哟。我希望你能找到一个简单的解决方案(FWIW,我记得很久以前就构建了
gcc,而且相当轻松)。 -
也许回退到 GCC 4.7.1 并重建 Qt 更好?从我的角度来看,这是您可以做的最简单的事情。重建 Qt 或重建 GCC……你在乎吗?
-
@Haroogan:你可能是对的。但如果我这样做,我会先用 gcc 4.8.0 试试。