OpenGL与Qt5: #error gl.h包含在glew.h之前



我在Qt4.8上有项目,并试图用Qt5.1构建它。我收到很多

#error gl.h included before glew.h 

#error glext.h included before glew.h

错误。看来Qt5的OpenGL有很大的变化…所有包含

#include "GL/glew.h"
#include "GL/gl.h"
#include "GL/glu.h"

假设你只在类中使用OPENGL调用,你需要使用GLEW加载函数,那么这将工作。

我所做的就是在。cpp文件中包含所有的GLEW h,但在包含头文件之前(其中QTGUI反过来包含OPENGL)。

这是我在glwidget。cpp:

中使用的方法
#include <GL/glew.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GLWidget.h>

正如您所看到的,我的GLWidget是来自QGLWidget的派生类,它需要包含QTGUI和所有这些。

标题是否首先包含在某些.h文件中并不重要。头文件不是独立的。重要的是从源文件中看到的include的顺序。

您似乎有太多的标题包含(一般来说,您应该将标题到标题的包含保持在绝对最低限度)。我们对此无能为力;你只需要解决标题问题

最新更新