首页 文章

Windows 7,qt 5.7,英特尔(HD)图形系列,OpenGL V 3.1

提问于
浏览
-2

在尝试在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 回答

  • 1

    此错误日志

    着色器编译失败:
    “无法创建D3D着色器 . \ n”
    QOpenGLShader :: link:无法创建D3D着色器 .

    强烈建议您使用的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

相关问题