1

これが私のコンテキストです。WindowsでOpenGLを使用してグラフィックエンジンをコンパイルしているので、glext.hを含めました。驚いたことに、Qt5のgl2.hと競合しています。

QT_OPENGL_ES_2が定義されている場合、gl2.h(gles2から)が含まれていることがわかりました。次に、QT_OPENGL_ES_2がデフォルトで定義されており、QT_NO_OPENGL_ES_2を定義できないことがわかりました。動作するはずです(私のqconfig.hのすべてのブロック-Qt5 msvc10オフラインインストーラーからのもの-はそのように見えます):

#if defined(QT_OPENGL_ES_2) && defined(QT_NO_OPENGL_ES_2)
# undef QT_OPENGL_ES_2
#elif !defined(QT_OPENGL_ES_2)
# define QT_OPENGL_ES_2
#endif

あまり寝ていないせいかもしれませんが、変な感じがします。しかし、QT_OPENGL_ES_2が定義されておらず、QT_NO_OPENGL_ES_2が定義されている場合、(4つのスリープしていないニューロンで)2番目のブランチに入り、QT_OPENGL_ES_2を定義することは間違いありません...

もし私が彼らだったら書いていただろう:

#if defined(QT_OPENGL_ES_2) && defined(QT_NO_OPENGL_ES_2)
# undef QT_OPENGL_ES_2
#elif !defined(QT_OPENGL_ES_2) && !defined(QT_NO_OPENGL_ES_2)
# define QT_OPENGL_ES_2
#endif

お時間をいただきありがとうございます:)

4

1 に答える 1

1

ええ、それはバグです、そしてそれが出るまで私は数日間苦労していました。私はそれを修正しました、そして今それはうまく動いています、衝突はありません。

https://bugreports.qt-project.org/browse/QTBUG-28821?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

于 2012-12-29T17:24:20.260 に答える