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
Avez-vous essayé de lancer
ldconfig est censé être géré par apt, donc il doit être bon. Surtout si
J'ai couru
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.)
-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
Vous devez vous connecter pour publier un commentaire.
Je pense que c'est le point. Il implique que j'ai installé
libboost
de la mauvaise façon. En fait, j'ai seulement installélibboost-dev
:Mais que dois-je faire:
(Ou, dans mon cas particulier, installer
libboost-system1.46-dev libboost-thread1.46-dev
au moins)Et une fois que vous les installer correctement, il devrait être
.a
et.so
dans/usr/lib
.sudo apt-get install ``apt-cache search libboost | grep -- -dev | grep -v '[12]\.[0-9]' | awk '{ print $1; }'
OriginalL'auteur Lai Yu-Hsuan
Dans Ubuntu 16.04, le paquet est nommé: libboost-tous-dev (pas libboost-dev-tout)
OriginalL'auteur S. K.
La zone de commentaire vissé jusqu'à la citation de cette suggestion, donc je vais l'afficher comme une réponse à me citant.
Il utilisé pour être, Ubuntu a le meta-paquet libboost-dev-tous les installer tous ces. Cependant, je n'arrive pas à le trouver maintenant. Voici une ligne de commande qui pourraient vous aider:
(Prises de https://github.com/imvu-open/istatd/ fichier install-boost-dev.sh )
OriginalL'auteur Jon Watte