命令行中缺少 DSO [重复]

DSO missing from command line [duplicate]

提问人:srai 提问时间:6/7/2014 最后编辑:oxfistsrai 更新时间:3/4/2019 访问量:158348

问:

我正在尝试编译这样的 C++ 程序:

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

但是,我收到以下错误:

/usr/bin/ld: /tmp/cct6xeXD.o: undefined reference to symbol
'pthread_join@@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

我不知道这个错误是什么意思。任何帮助将不胜感激。

C Linux G++ 未定义引用

评论


答:

107赞 anatolyg 6/7/2014 #1

DSO在这里表示动态共享对象;由于错误消息说命令行中缺少它,我想您必须将其添加到命令行中。

也就是说,尝试添加到命令行。-lpthread

评论

0赞 Alex 7/2/2015
谢谢,我在其他一些项目中遇到了类似的问题,并且能够以这种方式解决它。我只想补充一点,现在我仔细观察了,我可以看到错误实际上非常明确地说明了问题是什么。我的意思是,它确实说这是未定义的,它属于.但就像 srai 一样,直到我来到这里,我才知道这个错误意味着什么。:-)pthread_joinlibpthread.so
7赞 acgtyrant 12/21/2015
错误是否表明 ld 知道所需的 DSO 是?//lib/arm-linux-gnueabihf/libpthread.so.0