2013-05-10 92 views
0

当我使用qglwidget::rendertext函数时,我在qt程序中遇到内存访问不良而发疯。我的程序非常简单,我只有一个指针,但崩溃似乎并没有涉及到,因为当我调用rendertext时调试器有时会停止,有时当我关闭程序时。我没有经验的C++程序员,这让我疯狂。如何使用修复bug的修补程序

但我找到了这个BUG REPORT。它似乎最近(Updated: 25/Apr/13 8:47 AM),并且由于我不知道如何处理这个不好的内存访问,我认为它值得尝试一下。

解决补丁发布here但我不知道该怎么做..我一定要重新编译所有QT 4.8?只有opengl的一部分?我可以避免重新编译一切吗?

回答

1

前往您编译Qt和更改文件qt/src/opengl/qpaintengine_opengl.cpp的目录。进行作者所做的更改,或下载作者的文件并将其替换到源目录中。将目录切换到主qt目录并运行make。在做make之前一定不要重新运行./configure,否则它会重建整个事情。

make完成后,运行sudo make install,它会将新编译的QPaintEngine模块放到您的安装目录中。不幸的是,如果你有很多配置(比如静态库),我不知道这是否会起作用,但是值得一试。

我已经用QtMobility中的模块做过数百次了。你还必须记住,你现在有一个科学怪人的Qt Monster版本,当你升级的时候记得要重新修补,如果这个修改没有被提交给最新版本的话。

希望这会有所帮助。