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

时间:2013-03-18 14:34:00

标签: c++ qt opengl qt5 glew

我在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"

glew.h始终是第一个。

2 个答案:

答案 0 :(得分:1)

假设您只在使用GLEW加载所需函数的类中使用OPENGL调用,那么这将有效。

我要解决的问题是在.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以及所有这些。

答案 1 :(得分:-1)

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

您似乎有太多的标题包含(一般来说,您应该将标题到标题的内容保持在绝对最小值)。我们最终无法解决这个问题;你只需解开你的标题问题。