对glew的未定义引用

3
在我使用FTGL在OpenGL项目中渲染字体时,遇到了错误提示:
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,但不明白为什么它没有被引用。


1
你没有链接 glew,是吗? - BDL
1个回答

2
您在编译/链接行中没有引用GLEW库。g ++的-l标志告诉链接器链接库,例如-lftgl告诉它查找ftgl库并将其链接。
您没有使用-lGLEW(如果库名使用小写,则为-lglew),因此它未链接。还请参见此答案 error undefined reference to `FTExtrudeFont::FTExtrudeFont(char const*)' 也许你们两个应该聚在一起,互相帮助,因为你们似乎正在尝试解决同样的问题(作业?)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接