これが私のコンテキストです。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
お時間をいただきありがとうございます:)