web-dev-qa-db-ja.com

コマンドラインにDSOがありません

私はこのような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

このエラーの意味がわかりません。どんな助けも大歓迎です。

41
srai

ここでのDSOは、 動的共有オブジェクト ;を意味します。エラーメッセージにはコマンドラインにないことが示されているため、コマンドラインに追加する必要があると思います。

つまり、-lpthreadをコマンドラインに追加してみてください。

68
anatolyg