-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,英特尔 (HD) 显卡系列:驱动程序版本 8.15.10.2559,OpenGL 版本 3.1

OpenGL 版本来自 OpenGL Extensions Viewer 驱动程序版本是从屏幕分辨率->高级设置->属性->驱动程序中检索的

编辑 1:该应用程序在 Linux (Ubuntu 14.04) 上运行。我在没有对我的 Windows 7 笔记本电脑进行任何修改的情况下移动了它。我在两台笔记本电脑(Linux 和 Windows)上都使用 Qt 5.7。它建立在 Windows 7 上,没有任何抱怨。它在 Linux 上构建和运行,没有任何抱怨。我以为我可能有 OpenGL 版本问题,但 OpenGL Viewer 说我的系统有 OpenGL 3.1。

4

1 回答 1

1

此错误日志

shader compilation failed: 
"Failed to create D3D shaders.\n"
QOpenGLShader::link: Failed to create D3D shaders.

强烈建议您使用的 Qt 构建使用 ANGLE OpenGL(在 Direct3D 之上)仿真层。您可以在两种构建变体中找到 Qt,而 ANGLE 是 Windows 中部署更广泛的一种,因为 Windows 中安装的默认驱动程序缺乏现代 OpenGL 支持……这使得需要现代 OpenGL 功能的应用程序(如 Qt5)失败。因此,有一个包含此仿真层的 Qt5 构建变体。

在您的情况下,您可能希望为您的 GPU 安装(或可能已经这样做)本机 OpenGL 驱动程序(可直接从供应商网站获得)使用配置为使用本机 OpenGL 实现的 Qt 构建(Qt 内置-opengl desktop配置)。另请参阅MS Windows 中的 QT 和本机 OpenGL 支持

于 2016-07-11T17:13:14.290 回答