遇到了一个 奇奇怪怪的bug, 一般的QT程序中 在main.cpp 中初始化一个窗口进行显示后,进行执行 QApplication的 执行 一般是如下的结构:
// QT 5.11 的例程程序 示例
int main(int argc, char **argv)
{
QGuiApplication app(argc, argv);
AnalogClockWindow clock;
clock.show();
return app.exec();
}
但是不知到为什么问题, 调试程序的时候突然出现了,如图所示的错误, 提醒 ig9icd64.dll 处有未经处理的异常,调试发现是在执行最后一句,return app.exec();
进行一定搜索之后,找到了一篇blog介绍Qt上OpenGL画图不能正常使用,程序崩溃, 介绍的很详细, 然后解决方法是
更新显卡驱动或者重新安装一下显卡驱动
查看了很多网站,以及在Intel 的官方社区里面都有人提出这个的问题,而且应该是一个普遍的一个问题了
给出几个参考链接 以供查询
Crash in ig9icd64.dll on intel 630 (and similar) gpu in 64bit windows 10 #23863
Editor doesn‘t draw properly (one frame lag) on systems with Intel drivers (driver vendor bug)
最终发现了QT官方给出的一个BUG 报告中Windows/IntelHD Graphics 620: Qt Quick application crashes if it contains a visible element, with certain compilers
介绍了这个 bug 是由于硬件渲染出现了问题, 自己想办法更新驱动或者开启软件渲染来避免问题,开启方法可用以下语句:
QQuickWindow::setSceneGraphBackend(QSGRendererInterface::Software);
或者使用
QT_OPENGL = angle
来抑制崩溃
官方还给出了详细的介绍,以及调用的堆栈信息,可以自己查阅相关内容
2019_08_11
原文:https://www.cnblogs.com/hugochen1024/p/12570610.html