Qt4 и GLew кажутся несовместимыми друг с другом - PullRequest
1 голос
/ 12 февраля 2012

Я пытаюсь перейти от 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

1 Ответ

2 голосов
/ 12 февраля 2012

GLEW и qtfunctions определяют одно и то же.Вы не можете использовать их вместе, и вы не должны этого хотеть.Все, что вы используете для Qt - это инициализация контекста OpenGL.Так что не включайте qtfunctions.Попробуйте включить только QGLWidget и все, что нужно классу.

...