Je compile un programme qui nécessite la bibliothèque boost-thread-mt. J'ai installé libboost-all-dev en utilisant sudo apt-get install libboost-all-dev
mais le compilateur dit qu'il ne peut pas trouver la bibliothèque boost-thread-mt. Cette bibliothèque est-elle dans un autre package? Veuillez me guider ce que je dois installer pour cela.
8
libboost-thread-dev
installé?-mt
bibliothèques dans le paquet Boost principal. Voir aussi cette question non résolue.Réponses:
Le
-mt
suffixe avait été supprimé. Les bibliothèques Boost installées sont sécurisées pour plusieurs threads.Vous pouvez compiler votre programme par rapport à
libboost-thread
. Soit en changeant la source pour utiliser des non-mt
libs soit en faisant des liens symboliqueslibboost_thread.a
→libboost_thread-mt.a
. Même chose si vous avez besoin de bibliothèques partagées.so
.la source
AC_CHECK_LIB
check-target-builds
semble offrir la même fonctionnalité d'autoconf pour boost.build.Si votre projet utilise
CMake
, ce commutateur suivant fourni dans le module FindBoost doit être désactivé:-DBoost_USE_MULTITHREADED=OFF
la source
Ce lien est lié à cette question.
Vous pouvez aussi essayer de compiler le boost depuis la source plutôt que d'utiliser la version apt-get.
Les arguments
--layout
,threading
etbuild-type
aideront.Essayez donc cette commande pour installer boost, après
bootstrap.sh --prefix=/path/of/yours
:Ensuite, vous obtiendrez toutes les
-mt
bibliothèques.la source