Important: Please read the Qt Code of Conduct -

How to use glew with Qt 4.8?

  • Hi,

    I am trying to use glew and Qt together, which worked fine with Qt 4.7. In 4.8 however it does not seem to be possible anymore. Including glew before QtOpenGL yields:

    @/usr/include/QtOpenGL/qglfunctions.h:46:2: warning: #warning qglfunctions.h is not compatible with GLEW, GLEW defines will be undefined [-Wcpp]
    /usr/include/QtOpenGL/qglfunctions.h:47:2: warning: #warning To use GLEW with Qt, do not include <QtOpenGL> or <QGLFunctions> after glew.h [-Wcpp]
    and it later does not find functions like 'glUseProgram'. If I turn the includes around, the result is:
    @/usr/include/GL/glew.h:84:2: error: #error gl.h included before glew.h
    /usr/include/GL/glew.h:87:2: error: #error glext.h included before glew.h

    I cannot find much information about how it would still be possible to use them together. I have a rather large codebase of platform independent c++ opengl code and I always used Qt for window/context creation etc on desktops. The dependency on glew is not necessary, if I could still call all gl* functions normally c style. The documentation of QGLFunctions indicates how to achieve this for the paintGL method only, which is obviously not enough.

    Is there still a way to use glew and Qt 4.8 together? Or to drop glew as explained above?


  • QGLFunctions has only support for OpenGL/ES 2.0 API functionality. For using functionality of the latest OpenGL API you should not include QtOpenGL because it include qglfunctions.h and yields to the error you described. If you want to use your custom OpenGL widget based on QGLWidget you can just include the glew header before QGLWidget.

  • I confirm what stante says. I use glew and Qt 4.8 and I just do:
    @#include "glew.h"
    #include <QGLWidget>@

    without QGLFuntions include.

  • Same here:
    #include <GL/glew.h>
    #include <QGLWidget>
    #include <QGLFramebufferObject>
    #include <QGLPixelBuffer>
    #include <QGLBuffer>
    works just fine in Qt 4.x

    [Edit: Added @ tags around code; mlong]

  • This has ceased working in Qt 5. QGLWidget automatically includes QGLFunctions, which blows away glew. This ought to be fixed.

Log in to reply