windows 7、qt 5.7、英特尔(高清)显卡系列、OpenGL V 3.1

windows 7, qt 5.7, Intel (HD) Graphics Family, OpenGL V 3.1

在尝试 运行 在 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中的'Application Output' window。

我正在使用windows7、Intel (HD) 显卡系列:驱动程序版本 8.15.10.2559,OpenGL 版本 3.1

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

编辑 1: 该应用程序 运行s Linux (Ubuntu 14.04)。我在 Windows 7 笔记本电脑上没有任何修改地移动了它。我在两台笔记本电脑上都使用 Qt 5.7 (Linux & Windows)。它建立在 Windows 7 之上,没有任何抱怨。它在 Linux 上构建 运行,没有任何投诉。我以为我可能有 OpenGL 版本问题,但 OpenGL Viewer 说我的系统有 OpenGL 3.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 驱动程序(可直接从供应商网站获得)使用 Qt 构建配置为使用周围的本机 OpenGL 实现(使用 -opengl desktop 配置构建的 Qt)。另见 QT and native OpenGL support in MS Windows