2013-12-11 15 views
6

"Qt 5.2 mingw(opengl and x86)"バージョンをダウンロードしてインストールしました。 QtのこのバージョンでQtプロジェクトを実行すると、問題はありません。しかし、Qt Quickアプリケーションを実行すると、プログラムがクラッシュし、次のメッセージがデバッグログに記録されます。エラー:QOpenGLShader:シェイダーを作成できませんでした - Qt5.2でQtQuickアプリケーションをコンパイルするときMingw OpenGL

getProcAddress: Unable to resolve 'glGenRenderbuffers' 
getProcAddress: Unable to resolve 'glGenRenderbuffersOES' 
getProcAddress: Unable to resolve 'glGenRenderbuffersARB' 
getProcAddress: Unable to resolve 'glGenRenderbuffersEXT' 
getProcAddress: Unable to resolve 'glBindRenderbuffer' 
getProcAddress: Unable to resolve 'glBindRenderbufferOES' 
getProcAddress: Unable to resolve 'glBindRenderbufferARB' 
getProcAddress: Unable to resolve 'glBindRenderbufferEXT' 
getProcAddress: Unable to resolve 'glRenderbufferStorage' 
getProcAddress: Unable to resolve 'glRenderbufferStorageOES' 
getProcAddress: Unable to resolve 'glRenderbufferStorageARB' 
getProcAddress: Unable to resolve 'glRenderbufferStorageEXT' 
getProcAddress: Unable to resolve 'glGenRenderbuffers' 
getProcAddress: Unable to resolve 'glGenRenderbuffersOES' 
getProcAddress: Unable to resolve 'glGenRenderbuffersARB' 
getProcAddress: Unable to resolve 'glGenRenderbuffersEXT' 
getProcAddress: Unable to resolve 'glBindRenderbuffer' 
getProcAddress: Unable to resolve 'glBindRenderbufferOES' 
getProcAddress: Unable to resolve 'glBindRenderbufferARB' 
getProcAddress: Unable to resolve 'glBindRenderbufferEXT' 
getProcAddress: Unable to resolve 'glRenderbufferStorage' 
getProcAddress: Unable to resolve 'glRenderbufferStorageOES' 
getProcAddress: Unable to resolve 'glRenderbufferStorageARB' 
getProcAddress: Unable to resolve 'glRenderbufferStorageEXT' 
getProcAddress: Unable to resolve 'glFramebufferRenderbuffer' 
getProcAddress: Unable to resolve 'glFramebufferRenderbufferOES' 
getProcAddress: Unable to resolve 'glFramebufferRenderbufferARB' 
getProcAddress: Unable to resolve 'glFramebufferRenderbufferEXT' 
getProcAddress: Unable to resolve 'glFramebufferRenderbuffer' 
getProcAddress: Unable to resolve 'glFramebufferRenderbufferOES' 
getProcAddress: Unable to resolve 'glFramebufferRenderbufferARB' 
getProcAddress: Unable to resolve 'glFramebufferRenderbufferEXT' 
getProcAddress: Unable to resolve 'glGenBuffers' 
getProcAddress: Unable to resolve 'glGenBuffersOES' 
getProcAddress: Unable to resolve 'glGenBuffersARB' 
getProcAddress: Unable to resolve 'glGenBuffersEXT' 
getProcAddress: Unable to resolve 'glBindBuffer' 
getProcAddress: Unable to resolve 'glBindBufferOES' 
getProcAddress: Unable to resolve 'glBindBufferARB' 
getProcAddress: Unable to resolve 'glBindBufferEXT' 
getProcAddress: Unable to resolve 'glBufferData' 
getProcAddress: Unable to resolve 'glBufferDataOES' 
getProcAddress: Unable to resolve 'glBufferDataARB' 
getProcAddress: Unable to resolve 'glBufferDataEXT' 
getProcAddress: Unable to resolve 'glBindBuffer' 
getProcAddress: Unable to resolve 'glBindBufferOES' 
getProcAddress: Unable to resolve 'glBindBufferARB' 
getProcAddress: Unable to resolve 'glBindBufferEXT' 
getProcAddress: Unable to resolve 'glBindBuffer' 
getProcAddress: Unable to resolve 'glBindBufferOES' 
getProcAddress: Unable to resolve 'glBindBufferARB' 
getProcAddress: Unable to resolve 'glBindBufferEXT' 
getProcAddress: Unable to resolve 'glCreateProgram' 
getProcAddress: Unable to resolve 'glCreateProgramARB' 
getProcAddress: Unable to resolve 'glCreateProgramObject' 
getProcAddress: Unable to resolve 'glCreateProgramObjectARB' 
QOpenGLShaderProgram: could not create shader program 
getProcAddress: Unable to resolve 'glCreateShader' 
getProcAddress: Unable to resolve 'glCreateShaderARB' 
getProcAddress: Unable to resolve 'glCreateShaderObject' 
getProcAddress: Unable to resolve 'glCreateShaderObjectARB' 
QOpenGLShader: could not create shader 
Renderer failed shader compilation: 
"" 

どうすればこの問題を解決できますか?この問題はグラフィックカードに関連していますか?

答えて

8

これは、グラフィックカードドライバがQt.Quickアプリケーションに必須のOpenGL 2.0をサポートしていない場合に発生します。

最初の解決方法は、グラフィックカードドライバをアップグレードすることです。 OpenGL extensions Viewerを使用して、サポートしているOpenGLのバージョンを確認することもできます。

一方、あなたのアプリケーションを他のWindowsインストールに配備できるようにするため、ユーザーにドライバの更新を依頼したくない場合は、OpenGLベースのQt5ビルドを使用しないでくださいANGLEに基づいています。残念なことに、Qt 5.1以降、QtチームはQtのバージョンをANGLEとmingwでリリースしなくなりました。したがって、Qtを自分で再コンパイルするか、別のコンパイラに基づくバージョンを使用する必要があります。 Qt5 WindowsとANGLE/OpenGLの程度

詳しい情報はQt5.3

ためhere

EDITを見つけることができる新しい信号は、ことができますsceneGraphError呼ばQQuickWindowに追加されましたQt 5.3で単に空白の画面を表示するのではなく、初期化が失敗したことを知るためです。

また、QtチームはOpenGLをクライアントマシンで最初に試してみる機能と、ANGLEにフォールバックできない場合に取り組んでいます。これはまだQt 5.3で実験中で、Qt 5.4リリースの一部である必要があります。

関連する問題