C++Ubuntu生成文件错误

C++ Ubuntu makefile error

本文关键字:错误 文件 C++Ubuntu      更新时间:2023-10-16

我有一个C++应用程序,我已经为它创建了makefile

/usr/bin/ld: orsProcessor.o: undefined reference to symbol 'atan@@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: *** [ors] Error 1

我被过去的4个小时卡住了。有人能帮帮我吗。?

我的Makefile看起来是这样的:

cc=g++
cflags = -c
all: ors
ors: orsMain.o orsClassifier.o orsObjectData.o orsProcessor.o
    $(CC) orsMain.o orsClassifier.o orsObjectData.o orsProcessor.o -o ors -lstdc++
orsMain.o: orsMain.cpp
      $(CC) -lhighgui.so -limgproc.so -lcore.so $(cflags) orsMain.cpp -o orsMain.o -lstdc++
orsClassifier.o: orsClassifier.cpp
         $(CC) -lhighgui.so -limgproc.so -lcore.so $(cflags) orsClassifier.cpp -o orsClassifier.o -lstdc++ -lm
orsObjectData.o: orsObjectData.cpp
         $(CC) -lhighgui.so -limgproc.so -lcore.so $(cflags) orsObjectData.cpp -o orsObjectData.o -lstdc++ -lm

orsProcessor.o: orsProcessor.cpp
        $(CC) -lhighgui.so -limgproc.so -lcore.so $(cflags)  orsProcessor.cpp -o orsProcessor.o -lstdc++ -lm
clean:
    rm -rf *.o *~ ors
#ORSObjectRecognition.o: ORSObjectRecognition.cpp
#           $(CC) $(cflags) ORSObjectRecognition.cpp

谢谢。我得到了答案。我在前两个语句的末尾缺少-lm。我添加了它们,错误得到了解决。谢谢Kushal