Qt5 + VS2012 express + OpenGL + GLEW
-
This code compiles fine in Qt 4.8 with Visual Studio Express 2012
@
#define GLEW_STATIC
#define QT_NO_OPENGL_ES_2#include <GL/glew.h>
#include <QApplication>
#include <QGLWidget>int main(int argc, char** argv){
glewInit();QApplication app(argc, argv); QGLWidget widget; GLuint arr; glGenVertexArrays(1, &arr); // added just for testing widget.show(); return app.exec();
}@
After upgrading to Qt5 I am not able to make it compile anymore with any of the precompiled libraries available in the download web page.
Qt5.1.1 VS2012 32 bits
error C2371: 'GLsizeiptr' : redefinition; different basic types C:\Qt\Qt5.1.0\5.1.0\msvc2012\include\QtANGLE\GLES2\gl2.h
error C2371: 'GLintptr' : redefinition; different basic types C:\Qt\Qt5.1.0\5.1.0\msvc2012\include\QtANGLE\GLES2\gl2.h
error C2371: 'GLdouble' : redefinition; different basic types C:\Qt\Qt5.1.0\5.1.0\msvc2012\include\QtGui\qopengl.h
error C2365: '__glewVertexAttribPointer' : redefinition; previous definition was 'data variable' C:\Qt\Qt5.1.0\5.1.0\msvc2012\include\QtANGLE\GLES2\gl2.h
error C2365: '__glewVertexAttrib4fv' : redefinition; previous definition was 'data variable' C:\Qt\Qt5.1.0\5.1.0\msvc2012\include\QtANGLE\GLES2\gl2.hQt 5.1.1 VS2010 32 bits + OpenGL
error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall QGLWidget::~QGLWidget(void)"
error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall QGLWidget::QGLWidget(class QWidget *,class QGLWidget const *,class QFlags<enum Qt::WindowType>)"Qt5.1.1 VS2012 64 bits + OpenGL
error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'I also tried to compile Qt myself with no success; there are much more dependencies than previous versions making impossible for someone with limited experience.