DSO missing from command line

140,054

DSO here means Dynamic Shared Object; since the error message says it's missing from the command line, I guess you have to add it to the command line.

That is, try adding -lpthread to your command line.

Share:
140,054
srai
Author by

srai

Updated on July 05, 2022

Comments

  • srai
    srai almost 2 years

    I am trying to compile a C++ program like this:

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

    However I get the following error:

    /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
    

    I have no idea what this error means. Any help will be greatly appreciated.

  • Alex
    Alex almost 9 years
    Thanks, I had a similar problem with some other project and was able to solve it this way. I just want to add that now that I looked closer I can see that the error is actually very unambigious on what the problem is. I mean, it does say that pthread_join is undefined and that it belongs to libpthread.so. But like srai I had no idea what the error meant until I came here. :-)
  • acgtyrant
    acgtyrant over 8 years
    Does the error show that the ld know the needed DSO is //lib/arm-linux-gnueabihf/libpthread.so.0?