当我在我的opengl项目中使用ftgl渲染字体时,我遇到错误说明
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'
这些是我在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
看起来像libftgl.so库引发了错误。我已经使用ubuntu中的glew软件包安装了GLEW。但不明白为什么它没有被引用。
答案 0 :(得分:1)
您没有在编译/链接行上引用GLEW库。 g ++的-l标志告诉它告诉链接器链接库,例如-lftgl告诉它寻找ftgllibrary并链接它。
您没有-lGLEW(如果使用小写命名库,则为-lglew),因此未链接。另见这个答案 error undefined reference to `FTExtrudeFont::FTExtrudeFont(char const*)'
也许你们两个应该聚在一起,互相帮助,因为你们似乎正试图解决同样的问题(家庭作业?)问题。