2014-06-07 9 views
34

Sto cercando di compilare un programma C++ in questo modo:DSO manca da linea di comando

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

Comunque io ottenere il seguente errore:

/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 

Non ho idea di che cosa significa questo errore. Qualsiasi aiuto sarà molto apprezzato.

+0

Vedere anche [Errore di collegamento strano: DSO mancante dalla riga di comando] (http://stackoverflow.com/q/19901934), [DSO mancante dalla riga di comando] (http://stackoverflow.com/q/24096807) e [Errore di collegamento: DSO mancante dalla riga di comando] (http://stackoverflow.com/q/24989432). – jww

+1

Possibile duplicato di [Strange linking error: DSO mancante dalla riga di comando] (http://stackoverflow.com/questions/19901934/strange-linking-error-dso-missing-from-command-line) – jww

risposta

56

DSO significa Dynamic Shared Object; dal momento che il messaggio di errore dice che manca dalla riga di comando, suppongo che devi aggiungerlo alla riga di comando.

Cioè, prova ad aggiungere -lpthread alla tua riga di comando.

+0

Grazie, ho avuto un problema simile con qualche altro progetto ed è stato in grado di risolverlo in questo modo. Voglio solo aggiungere che ora che ho guardato più da vicino posso vedere che l'errore è in realtà molto poco ambizioso su quale sia il problema. Voglio dire, dice che 'pthread_join' non è definito e appartiene a' libpthread.so'. Ma come Srai non avevo idea di cosa significasse l'errore fino a quando non sono venuto qui. :-) – Alex

+4

L'errore mostra che il ld conosce il DSO necessario è '// lib/arm-linux-gnueabihf/libpthread.so.0'? – acgtyrant

-1

Ho anche riscontrato un problema simile, dopo l'insediamento, una libreria che deve essere collegata.
Ma in effetti, potresti aver dimenticato di connettere la libreria.