c++ - Qt4 和 GLew 似乎彼此不兼容

标签 c++ opengl qt4 glew

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

搜索显示很多人同时使用 glew 和 Qt 效果很好。至少,我想要一个关于兼容性的明确答案。我已将 .h 和 .c 文件添加到我的项目中,因为将来我不必再费力安装 .lib 和 .dll 文件。

下面是 QtOpenGL 中的代码,如果首先包含 glew,则会调用该代码:

#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 和 qtfunctions 都定义相同的东西。您不能同时使用它们,也不应该这样做。您使用 Qt 的全部目的就是初始化 OpenGL 上下文。所以不要包含 qtfunctions。尝试仅包含 QGLWidget 和该类所需的内容。

关于c++ - Qt4 和 GLew 似乎彼此不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9251453/

相关文章:

c++ - std::bind 有多少个参数(VC 11 只支持 4 个)

c++ - OpenGL 多个 VBO 只渲染一个

c++ - 使用 QGraphicsView 时小部件背景不透明但使用 QGridLayout 时透明

qt - 日期检查计数 30 天

c++ - 多重间接的限制

c++ - 遍历 unordered_map cpp 的 unordered_map 中的元素

c++ - C++ 中用于并行化的字符串数组

python - 根据pyqtgraph.opengl中的信号值调整曲面图项的颜色

c++ - 尝试在玩家死亡时切换纹理(OpenGL + C++)

ruby - 如何让 Qt4 在 Windows 7 上运行 ruby​​ 1.9.2?