在尝试在Windows 7笔记本电脑上运行Qt应用程序时,它会说以下内容(并不断重复):
shader compilation failed:
"Failed to create D3D shaders.\n"
QOpenGLShader::link: Failed to create D3D shaders.
Failed to create D3D shaders.
QOpenGLShaderProgram::uniformLocation( matrix ): shader program is not linked
QOpenGLShaderProgram::uniformLocation( color ): shader program is not linked
QOpenGLShaderProgram::uniformLocation( textureScale ): shader program is not linked
QOpenGLShaderProgram::uniformLocation( dpr ): shader program is not linked
QOpenGLShader::link: Failed to create D3D shaders.
上面的输出来自QtCreator中的“应用程序输出”窗口 .
我使用的是Windows 7,Intel(HD)图形系列:驱动程序版本8.15.10.2559,OpenGL 3.1版
OpenGL版本来自OpenGL Extensions Viewer从屏幕分辨率 - >高级设置 - >属性 - >驱动程序中检索驱动程序版本
编辑1:该应用程序在Linux上运行(Ubuntu 14.04) . 我移动它没有任何修改我的Windows 7笔记本电脑 . 我在两台笔记本电脑(Linux和Windows)上使用Qt 5.7 . 它 Build 在Windows 7上,没有任何抱怨 . 它在Linux上构建并运行,没有任何抱怨 . 我以为我可能有OpenGL版本问题,但OpenGL Viewer说我的系统有OpenGL 3.1 .
1 回答
此错误日志
强烈建议您使用的Qt构建使用ANGLE OpenGL(在Direct3D之上)仿真层 . 您可以在两种构建变体中找到Qt,而ANGLE是在Windows中更广泛部署的,因为Windows中安装的默认驱动程序缺乏现代OpenGL支持......这使得需要现代OpenGL功能的应用程序(如Qt5)失败 . 因此,有一个包含此仿真层的Qt5构建变体 .
在您的情况下,您可能希望安装(或可能已经这样)GPU的本机OpenGL驱动程序(可直接从供应商网站获得)并使用配置为使用本机OpenGL实现的Qt构建(Qt使用
-opengl desktop
配置构建) . 另见QT and native OpenGL support in MS Windows