【问题标题】:Warning: #warning qopenglfunctions.h is not compatible with GLEW, GLEW defines will be undefined [-Wcpp]警告:#warning qopenglfunctions.h 与 GLEW 不兼容,GLEW 定义将未定义 [-Wcpp]
【发布时间】:2013-12-27 18:33:01
【问题描述】:

我正在配置一个与 glut 一起工作的程序以与 Qt 一起工作。我正在使用 Qt 5.1.1。从 Qt4 到 Qt5,似乎一些 openGL 功能已经丢失。在我的程序中,我创建了一个 QOpenGLContext 并尝试使用 vbo 渲染到 QWindow。 vbo 部分工作正常。

该程序的其他一些部分依赖于 glew。运行程序时收到以下警告

#warning qopenglfunctions.h is not compatible with GLEW, GLEW defines will be undefined  [-Wcpp]
#warning To use GLEW with Qt, do not include <qopengl.h> or <QOpenGLFunctions> after glew.h [-Wcpp]

屏幕输出为黑色。

当我注释掉这一行时

glBindBuffer(GL_PIXEL_UNPACK_BUFFER, vboId);

将 pbo 发送到纹理,随机图像渲染到屏幕。我假设这个随机图像存储在我试图访问的内存中。

显然,你不能同时使用 glew 和 qopengl 函数。

如果您想建议我使用 QGLWidget 而不是带有 QWindow 的 QopenGLContext,请向我解释如何在 Qt 5.1.1 中将 QGLWidget 与 cmake 一起使用。我已经阅读了很多答案,但没有一个在 Qt 5.1.1 中有效。

【问题讨论】:

标签: c++ qt opengl cmake glew


【解决方案1】:

发布为答案,因为没有足够的代表发表评论。

要将 GLEW 与 Qt 一起使用,请不要在 glew.h [-Wcpp] 之后包含

正如警告所暗示的,您应该省略 QOpenGLFunctions 包含指令以支持 GLEW 包含。

编辑:经过更多研究,它发现 QT 在内部文件的某处包含 QOpenGLFunctions 标头。我必须自己测试一个解决方法,会回来的。

编辑:一般更新,显然人们将这篇文章误解为冒犯和粗鲁。

【讨论】:

  • 嗨@Lisoph 你提到的解决方法是什么,它有效吗?
  • 嗨@BarryRogerson,我认为我没有找到有效的解决方法,至少我不记得我做过了。已经6年了,我的记忆力很糟糕:S
猜你喜欢
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多