1

我正在尝试从 GLee 转移到 glew,因为 GLee 在 VC2010 下不起作用,并且有一段时间没有更新。我在使用头文件时遇到问题,因为这两个库都希望首先定义它们的头文件。glew 不喜欢首先定义 gl.h(在 QtOpenGL 中定义),并且 QtOpenGL 特别声明 glew 应该在 QtOpenGL 之后定义。

搜索显示很多人同时使用 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
4

1 回答 1

2

GLEW 和 qtfunctions 都定义了相同的东西。你不能一起使用它们,你不应该想要。您使用 Qt 的目的只是初始化 OpenGL 上下文。所以不要包括 qtfunctions。尝试只包括 QGLWidget 和类需要的东西。

于 2012-02-12T18:47:06.827 回答