2017-01-17 5 views
0

auf glew, während ich auf Rendering-Schriften arbeite in meinem opengl Projekt mit ftgl Ich bin begegnen Fehler Angabeundefiniert Referenz

g++ -o mygame Sample_GL3_2D.cpp glad.c -lGL -lglfw -ldl -lftgl -lSOIL -I /usr/include/freetype2 -L/usr/local/lib -lfreetype 
/usr/local/lib/libftgl.so: undefined reference to `__glewGenBuffers' 
/usr/local/lib/libftgl.so: undefined reference to `glewInit' 
/usr/local/lib/libftgl.so: undefined reference to `__glewBindVertexArray' 
/usr/local/lib/libftgl.so: undefined reference to `__glewBindBuffer' 
/usr/local/lib/libftgl.so: undefined reference to `__glewUniform3f' 
/usr/local/lib/libftgl.so: undefined reference to `__glewVertexAttribPointer' 
/usr/local/lib/libftgl.so: undefined reference to `__glewBufferData' 
/usr/local/lib/libftgl.so: undefined reference to `__glewDeleteBuffers' 
/usr/local/lib/libftgl.so: undefined reference to `__glewDeleteVertexArrays' 
/usr/local/lib/libftgl.so: undefined reference to `__glewGenVertexArrays' 
/usr/local/lib/libftgl.so: undefined reference to `__glewEnableVertexAttribArray' 

das sind meine Inhalte in Makefile

all:mygame 

mygame: Sample_GL3_2D.cpp glad.c 
    g++ -o mygame Sample_GL3_2D.cpp glad.c -lGL -lglfw -ldl -lftgl -lSOIL -I /usr/include/freetype2 -L/usr/local/lib -lfreetype 
clean: 
    rm mygame 

wie die Fehler aussieht, ist wird von der Bibliothek libftgl.so ausgelöst. Ich habe den GLEW mit den glew-Paketen im Ubuntu installiert. aber verstehe nicht, warum es nicht referenziert wird.

+1

Sie verlinken nicht gegen glew, nicht wahr? – BDL

Antwort

0

Sie verweisen nicht auf die GLEW-Bibliothek in der Kompilierungs-/Verbindungslinie. Das Flag -l zu g ++ sagt ihm, dem Linker den Link der Bibliothek mitzuteilen, z. -lftgl sagt ihr, dass sie nach der ftgllibrary suchen und sie verlinken soll.

Sie haben nicht -lGLEW (oder -lglew, wenn die Bibliothek in Kleinbuchstaben benannt wird), sodass sie nicht verknüpft ist. Siehe auch diese Antwort error undefined reference to `FTExtrudeFont::FTExtrudeFont(char const*)'

Vielleicht sollten Sie beide zusammen und versuchen und helfen einander, da Sie scheinen zu versuchen, das gleiche (Hausaufgaben?) Problem zu lösen.