我正在尝试从GLee过渡到GLee,因为GLee在VC2010下不起作用,并且已经有一段时间没有更新了。我在头文件上遇到了麻烦,因为两个库都希望首先定义它们的头文件。 glew不喜欢首先定义gl.h(在QtOpenGL中定义),并且QtOpenGL特别声明glew应该在QtOpenGL之后定义。
搜索显示许多人同时使用glew和Qt都很好。至少,我希望获得有关兼容性的明确答案。我已经将.h和.c文件添加到了我的项目中,因为将来我不必再花时间安装.lib和.dll文件了。
如果首先包含毛刺,这是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
最佳答案
GLEW和qtfunction都定义相同的东西。您不能一起使用它们,也不应该这样做。您使用Qt进行的所有操作都是初始化OpenGL上下文。因此,请勿包括qtfunctions。尝试仅包含QGLWidget和类所需的内容。
关于c++ - Qt4和GLew似乎彼此不兼容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9251453/