Tak,Redefinicja nagłówków GLEW i Qt5
Po aktualizacji naszego prtu do Qt5 mamy problemy z glew. Aplikacja łączy bibliotekę, która musi działać, i działa dobrze, gdy używa się biblioteki w aplikacjach innych niż Qt.
Teraz jednak jesteśmy łączenie biblioteki do qt aplikacji i renderowania do glwidget. To działało, ale teraz nie robi. Dostajemy ogromną liczbę błędów, które najczęściej mówią "redefinicja" czegoś. Oto kilka przykładów:
1>c:\glew-1.9.0\include\gl\glew.h(275): error C2371: 'GLdouble' : redefinition; different basic types
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\qtgui\qopengl.h(71) : see declaration of 'GLdouble'
1>c:\glew-1.9.0\include\gl\glew.h(630): warning C4005: 'GL_DOUBLE' : macro redefinition
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\qtgui\qopengl.h(68) : see previous definition of 'GL_DOUBLE'
1>c:\glew-1.9.0\include\gl\glew.h(1655): error C2371: 'GLintptr' : redefinition; different basic types
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\gles2\gl2.h(38) : see declaration of 'GLintptr'
1>c:\glew-1.9.0\include\gl\glew.h(1656): error C2371: 'GLsizeiptr' : redefinition; different basic types
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\gles2\gl2.h(39) : see declaration of 'GLsizeiptr'
1>c:\glew-1.9.0\include\gl\glew.h(1707): warning C4005: 'GL_BLEND_EQUATION_RGB' : macro redefinition
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\gles2\gl2.h(96) : see previous definition of 'GL_BLEND_EQUATION_RGB'
1>c:\glew-1.9.0\include\gl\glew.h(11533): warning C4005: 'GL_COVERAGE_SAMPLES_NV' : macro redefinition
Masz pomysł. W każdym razie, jak mogę zatrzymać Qt, w tym jego gl rzeczy, więc dmuchnął może działać sam?
Jak widać gles jest istota problemu, więc został skierowany do wykorzystania to:
#define QT_NO_OPENGL_ES_2
Ale to nie ma znaczenia w ogóle. Istnieją inne błędy, które nie odnoszą się do takich kodów:
1>c:\glew-1.9.0\include\gl\glew.h(275): error C2371: 'GLdouble' : redefinition; different basic types
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\qtgui\qopengl.h(71) : see declaration of 'GLdouble'
1>c:\glew-1.9.0\include\gl\glew.h(630): warning C4005: 'GL_DOUBLE' : macro redefinition
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\qtgui\qopengl.h(68) : see previous definition of 'GL_DOUBLE'
1>c:\glew-1.9.0\include\gl\glew.h(1655): error C2371: 'GLintptr' : redefinition; different basic types
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\gles2\gl2.h(38) : see declaration of 'GLintptr'
1>c:\glew-1.9.0\include\gl\glew.h(1656): error C2371: 'GLsizeiptr' : redefinition; different basic types
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\gles2\gl2.h(39) : see declaration of 'GLsizeiptr'
1>c:\glew-1.9.0\include\gl\glew.h(1707): warning C4005: 'GL_BLEND_EQUATION_RGB' : macro redefinition
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\gles2\gl2.h(96) : see previous definition of 'GL_BLEND_EQUATION_RGB'
1>c:\glew-1.9.0\include\gl\glew.h(11533): warning C4005: 'GL_COVERAGE_SAMPLES_NV' : macro redefinition
1> c:\qt\qt5.0.2\5.0.2\msvc2012_64\include\qtgui\qopengles2ext.h(530) : see previous definition of 'GL_COVERAGE_SAMPLES_NV'
Mamy nadzieję, że możesz pomóc!
Czy możesz wyjaśnić, jak to zrobić w Qt? Lub bardziej gadatliwą odpowiedź na pytanie, jak to zrobiłeś? – GraphicsMuncher
Pracowałem dla mnie. Widziałem podobny problem z budowaniem VS2012 z 32-bitowymi plikami EXE i OpenGL (zamiast ANGLE). Moja pełna linia poleceń do budowania źródła z wiersza poleceń VS2012 to: 'configure -prefix c: \ Qt \ Qt5.1.1 \ 5.1.1 \ msvc2012_opengl -mp -debug-and-release -opengl desktop -C++ 11 - opensource -D _CRT_SECURE_NO_WARNINGS -domake examples -skip qtwebkit-examples && nmake && nmake install' – metal