我在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始终是第一个。
答案 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文件中并不重要。头文件不是独立的。重要的是从源文件中看到的包含顺序。
您似乎有太多的标题包含(一般来说,您应该将标题到标题的内容保持在绝对最小值)。我们最终无法解决这个问题;你只需解开你的标题问题。