我在linux中使用opengl(ubuntu 13.10)开始了一个项目,我有一个教授的基本源代码,可以在他的计算机中编译。
当我试图在这里编译它时(我让open gl库在其他项目中工作),我在terminal中得到了以下错误:
gcc -o quadtree quadtree.o glm.o winGL.o -lglut -lGL -lGLU
/usr/bin/ld: glm.o: referência indefinida ao símbolo 'acos@@GLIBC_2.2.5'
/lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: ** [quadtree] Erro 1
(“refer_ncia indefineda ao simbolo”是指“未定义的符号引用”)
我在网上搜索,得到提示,这可能是一个错误的makefile,但我不知道是什么错。这是我的makefile:
.c.o: $*.h
gcc -c $*.c
.cpp.o: $*.h
g++ -c $*.cpp
all: quadtree
quadtree: quadtree.o glm.o winGL.o
gcc -o $@ $^ -lglut -lGL -lGLU
clean:
rm *.o *.*~ *~ quadtree
是否缺少任何命令?
最佳答案
您忘记链接-lm
,请参见man acos