我在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

08-04 03:05