2016-07-11 8 views
-3

Bei dem Versuch, eine Qt-Anwendung auf einem Windows 7-Laptop läuft es sagt die folgende (und wiederholt immer wieder):windows 7, qt 5.7, Intel (HD) Grafik Familie, OpenGL V 3.1

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. 

Die Ausgabe oben ist aus dem 'Application Output' Fenster in QtCreator.

ich windows bin mit 7, Intel (HD) Grafik Familie: Driver Version 8.15.10.2559, OpenGL Version 3.1

Die OpenGL-Version von OpenGL Extensions Viewer Die Treiberversion von Bildschirmauflösungs> Erweitert abgerufen wurde Einstellungen-> Eigenschaften-> Treiber

Edit 1: Die App läuft auf Linux (Ubuntu 14.04). Ich habe es ohne Änderungen an meinem Windows 7-Laptop bewegt. Ich benutze Qt 5.7 auf beiden Laptops (Linux & Windows). Es baute auf Windows 7 ohne irgendwelche Beschwerden. Es baute und lief unter Linux ohne irgendwelche Beschwerden. Ich dachte, ich könnte ein OpenGL-Problem haben, aber OpenGL Viewer sagt, dass mein System OpenGL 3.1 hat.

+3

Bitte geben Sie den Code an, der den Fehler verursacht – Taegost

Antwort

1

Dieses Fehlerprotokoll

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

stark darauf hin, dass die Qt bauen Sie mit der ANGLE OpenGL verwendet (auf der Direct3D) Emulationsschicht. Sie können Qt in zwei Build-Varianten finden und ANGLE ist der am weitesten verbreitete unter Windows, da die in Windows installierten Standardtreiber keine moderne OpenGL-Unterstützung haben ... wodurch Anwendungen, die moderne OpenGL-Funktionen benötigen, wie Qt5, fehlschlagen. Daher gibt es eine Qt5-Build-Variante, die diese Emulationsebene enthält.

In Ihrem Fall möchten Sie wahrscheinlich die für Ihre GPU (erhältlich vom Lieferanten Website direkt) nativen OpenGL-Treiber (oder wahrscheinlich schon tat so) installieren und eine Qt verwenden bauen um die native OpenGL-Implementierung zu verwenden, konfiguriert (Qt mit -opengl desktop Konfiguration gebaut). Siehe auch QT and native OpenGL support in MS Windows

+0

Danke datenwolf, das hat es genagelt. – user37997