J'ai installé libboost mais ne peut pas le lien

J'ai installé libboost-dev par apt-get, et qu'il est placé dans /usr/lib.

/usr/lib$ ls | grep boost
libboost_filesystem.so.1.46.1
libboost_iostreams.so.1.46.1
libboost_serialization.so.1.46.1
libboost_system.so.1.46.1
libboost_thread.so.1.46.1
libboost_wserialization.so.1.46.1

Mais quand j'ai essayé de compiler un source qui utilise boost_thread j'ai toujours une erreur.

$ g++ tcp_echo.cpp -o tcp_echo -L/usr/lib -llibboost_thread
/usr/bin/ld: cannot find -lboost_thread
collect2: ld returned 1 exit status
$ g++ tcp_echo.cpp -o tcp_echo -L/usr/lib -lboost_thread
/usr/bin/ld: cannot find -lboost_thread
collect2: ld returned 1 exit status

Quelle est la bonne façon d'installer et de lien à libboost?

Vous n'avez pas besoin -L/usr/lib, il est automatiquement ajouté à la bibliothèque de recherche de chemin.
Avez-vous essayé de lancer ldconfig (en tant que root) après l'installation?
ldconfig est censé être géré par apt, donc il doit être bon. Surtout si -L est utilisé de toute façon.
J'ai couru ldconfig.
Une chose que je constate, c'est que vous n'avez pas le libboost_thread.. Vous avez la version 1.46.1 fichier mais généralement, les bibliothèques de créer un lien symbolique vers la version de la copie avec le nom non décoré. Qui pourrait ne pas l'être, mais c'est une chose que j'ai remarqué. (Cette opération est généralement effectuée par l'installateur.)

OriginalL'auteur Lai Yu-Hsuan | 2012-06-21