【问题标题】:DSO missing from command line [duplicate]命令行中缺少 DSO [重复]
【发布时间】:2014-07-28 14:35:24
【问题描述】:

我正在尝试编译这样的 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++ undefined-reference


    【解决方案1】:

    这里的 DSO 表示Dynamic Shared Object;由于错误消息说它在命令行中丢失,我猜你必须将它添加到命令行。

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

    【讨论】:

    • 谢谢,我在其他项目中遇到了类似的问题,并且能够通过这种方式解决。我只想补充一点,现在我仔细观察了,我可以看到该错误实际上对于问题所在非常明确。我的意思是,它确实说pthread_join 是未定义的,它属于libpthread.so。但是和 srai 一样,直到我来到这里,我才知道这个错误是什么意思。 :-)
    • 错误是否表明ld知道所需的DSO是//lib/arm-linux-gnueabihf/libpthread.so.0
    猜你喜欢
    • 2016-01-20
    • 2019-01-12
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 2021-05-18
    • 2016-02-18
    相关资源
    最近更新 更多