2014-06-07 3 views
34

에서 누락 :이 오류가 무엇을 의미하는지 전혀 모르는는 DSO 내가이 같은 C++ 프로그램을 컴파일하려고 명령 줄

/usr/bin/ld: /tmp/cct6xeXD.o: undefined reference to symbol 
'[email protected]@GLIBC_2.4' //lib/arm-linux-gnueabihf/libpthread.so.0: 
error adding symbols: DSO missing from command line 

collect2: error: ld returned 1 exit status 

:

$ g++ -o Sniffer_Train main.cpp Sniffer_train.cpp Sniffer_train.h -lmysqlclient -lpcap 

그러나 나는 다음과 같은 오류가 발생합니다. 어떤 도움이라도 대단히 감사하겠습니다.

+0

[이상한 연결 오류 : 명령 줄에서 누락 된 DSO] (http://stackoverflow.com/q/19901934), [명령 줄에서 DSO 누락] (http://stackoverflow.com/q/24096807) , [링크 오류 : DSO가 명령 줄에서 누락되었습니다] (http://stackoverflow.com/q/24989432)를 참조하십시오. – jww

+1

[이상한 연결 오류 : DSO가 명령 줄에서 누락되었습니다.] (http://stackoverflow.com/questions/19901934/strange-linking-error-dso-missing-from-commandline) – jww

답변

56

여기서 DSO는 Dynamic Shared Object을 의미합니다. 오류 메시지가 명령 줄에서 누락되었다고했기 때문에 명령 줄에 추가해야합니다.

즉, 명령 줄에 -lpthread을 추가하십시오.

+0

감사합니다. 다른 프로젝트와 비슷한 문제가 발생하여이를 이렇게 해결할 수있었습니다. 나는 내가 더 가까이에서 보았을 때 그 오류가 실제로 문제가 무엇인지에 대해 매우 모호하다는 것을 알 수있다. 제 말은'pthread_join'은 정의되지 않았고'libpthread.so'에 속한다고 말합니다. 그러나 srai처럼 나는 내가 여기 올 때까지 그 실수가 무엇을 의미하는지 전혀 몰랐다. :-) – Alex

+4

오류로 인해 ld가 필요한 DSO가'/ lib/arm-linux-gnueabihf/libpthread.so.0'임을 알 수 있습니까? – acgtyrant

-1

비슷한 문제가 발생하여 결재 후 연결해야하는 라이브러리도 발생했습니다.
사실, 라이브러리를 연결하는 것을 잊어 버렸을 수 있습니다.