这是我的上下文:我正在使用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
感谢您的时间:)
答案 0 :(得分:1)
是的,这就是错误,我已经挣扎了几天,直到它出来。我纠正了它,现在它运行良好,没有冲突。