我正试图从GLee转到glew,因为GLee在VC2010下不起作用并且暂时没有更新。我遇到了头文件的问题,因为这两个库都希望首先定义头文件。 glew不喜欢首先定义gl.h(在QtOpenGL中定义),QtOpenGL特别声明应该在QtOpenGL之后定义glew。
搜索显示很多人同时使用glew和Qt。至少,我想要一个关于兼容性的明确答案。我已经将.h和.c文件添加到我的项目中,因为将来我不必乱用安装.lib和.dll文件。
如果首先包含glew,则调用QtOpenGL中的代码:
#ifdef __GLEW_H__
#warning qglfunctions.h is not compatible with GLEW, GLEW defines will be undefined
#warning To use GLEW with Qt, do not include <QtOpenGL> or <QGLFunctions> after glew.h
#endif
如果首先包含QtOpenGL,那么这就是调用的代码:
#if defined(__gl_h_) || defined(__GL_H__) || defined(__X_GL_H)
#error gl.h included before glew.h
#endif
答案 0 :(得分:2)
GLEW和qtfunctions都定义相同的东西。你不能一起使用它们,你不应该这样做。所有你使用Qt for是初始化OpenGL上下文。所以不要包括qtfunctions。尝试只包括QGLWidget和类所需的东西。