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 个非睡眠神经元)它进入第二个分支并定义了 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 回答