2015-02-04 3 views
-2

У меня есть приложение на C++, и я создал для него make-файл. как, я получаю следующую ошибку:C++ Ubuntu makefile error

/usr/bin/ld: orsProcessor.o: undefined reference to symbol '[email protected]@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 
+1

Уведомление, в котором работает линкер, плачет? 'Atan'. Это должен быть красный флаг, который вы не связываете с математикой lib ('-lm'). –

+0

Возможный дубликат [неопределенная ссылка на «только некоторые функции math.h»] (http://stackoverflow.com/questions/6534191/undefined-reference-to-only-some-math-h-functions) –

+0

Где делали ' highgui.so', 'imgproc.so' и' core.so'? Другая (более новая) система? Вы используете 'atan' в своем коде? –

ответ

0

Спасибо. У меня есть ответ. Мне не хватало в конце первых двух утверждений. Я добавил их, и ошибки были решены. Спасибо, Kushal