-
glew mit mingw benutzen
Hi,
ich benutze in eclipse mingw-g++ als compiler und benötige GLEW um OpenGL Erweiterungen zu benutzen. Habe GLEW als statische Biliothek unter mingw gebaut und die entsprechenden Dateien in das mingw Verzeichnis kopiert:
glew.h, glxew.h, wglew.h nach "C:\MinGW\include\GL"
libglew32.a, libglew32.dll.a, libglew32mx.a, libglew32mx.dll.a nach "C:\MinGW\lib"
Zum Verwenden von GLEW habe ich folgendes in die Header Files eingefügt:
Code:
#define GLEW_STATIC
#include <GL/glew.h>
Beim Linken des Programmes kommt es jedoch zu Fehlern.
Code:
g++ -mthreads -Wl,-subsystem,windows -o debug\BallerburgClon.exe object_script.BallerburgClon.Debug -L"c:\Qt\4.8.0\lib" -lglu32 -lopengl32 -lgdi32 -luser32 -lmingw32 -lqtmaind -DGLEW_STATIC -LC:\MinGW\msys\1.0\home\martin\glew-1.7.0\glew-1.7.0\lib -lQtXmlPatternsd4 -lQtXmld4 -lQtOpenGLd4 -lQtGuid4 -lQtCored4
./debug\CPixelCanvas.o: In function `CPixelCanvas':
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:39: undefined reference to `__glewGenBuffers'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:40: undefined reference to `__glewBindBuffer'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:41: undefined reference to `__glewBufferData'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:42: undefined reference to `__glewBindBuffer'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:48: undefined reference to `__glewBindBuffer'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:50: undefined reference to `__glewBindBuffer'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:39: undefined reference to `__glewGenBuffers'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:40: undefined reference to `__glewBindBuffer'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:41: undefined reference to `__glewBufferData'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:42: undefined reference to `__glewBindBuffer'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:48: undefined reference to `__glewBindBuffer'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:50: undefined reference to `__glewBindBuffer'
./debug\CPixelCanvas.o: In function `ZN4MyGL12CPixelCanvas9setPixelsERKSt6vectorINS_6tPixelESaIS2_EE':
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:74: undefined reference to `__glewBindBuffer'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:75: undefined reference to `__glewMapBuffer'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:97: undefined reference to `__glewUnmapBuffer'
make[1]: Leaving directory `C:/Users/martin/workspace/BallerburgClon'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:98: undefined reference to `__glewBindBuffer'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:104: undefined reference to `__glewBindBuffer'
C:\Users\martin\workspace\BallerburgClon/myGL/CPixelCanvas.cpp:106: undefined reference to `__glewBindBuffer'
collect2: ld gab 1 als Ende-Status zurück
make[1]: *** [debug\BallerburgClon.exe] Error 1
make: *** [debug] Error 2
Weis jemand wie ich das Programm ohne Fehler mit GLEW linken kann?
Grüße Martin :)
-
Ich sehe in deinem Linkeraufruf keine Direktive zum Linken mit libglew32 oder libglew32mx
D.h. es fehlt vermutlich
eventuell auch
Ciao,
_
-
Voltreffer :D !!! Nun geht es endlich. Vielen Dank.
Was mich noch interessieren würde, wo steht das man "glew32" anhängen muss. Ich hatt nur mal -lGLEW probiert, das brachte aber nichts. Oder nimmt man immer -lDateiname ohne endung?
Grüße
-
Ja, immer -l gefolgt vom Namen der Bibliotheksdatei, ohne Endung.
Also aus libglew32.a folgt -lglew32
Ciao,
_
-
Siehe meinen eingefügten Link.
Ein einfaches abfragen wie oben im Quelltext wird bei der Maus nichts bringen weil es immer false zurück geben wird.
Hier mußt du mit einer Schleife und XEvent Arbeiten.