警告:#warning qopenglfunctions.h与GLEW不兼容,GLEW定义将未定义[-Wcpp]

6

我正在配置一个与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和qopenglfunctions。

如果你想建议我使用QGLWidget而不是带有QWindow的QopenGLContext,请告诉我如何在Qt 5.1.1中使用cmake使用QGLWidget。我已经阅读了很多建议,但是在Qt 5.1.1中没有一个有效的。


这里有人说要忽略它。 - noel av
1个回答

0
使用GLEW与Qt一起使用时,不要在glew.h之后包含或 [-Wcpp]
正如警告所建议的那样,您应该省略QOpenGLFunctions的包含指令,而选择使用GLEW的包含指令。QT在某个内部文件中包含了QOpenGLFunctions头文件。

嗨@Lisoph,你提到的解决方法是什么?它有效吗? - Barry Rogerson
嗨@BarryRogerson,我不认为我成功找到了一个可行的解决方法,至少我记不起来我是否找到了。已经过去6年了,我的记忆力很糟糕:S - Lisoph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接