Erreur lors du chargement des bibliothèques partagées de boost

Je travaille sur des centos. J’ai installé la version boost 1.45.0 sur mon système. Les programmes sont compilés correctement, mais chaque fois que je tape une commande pour voir la sortie, l’erreur suivante est générée:

./a.out: erreur lors du chargement des bibliothèques partagées: libboost_thread.so.1.45.0: impossible d’ouvrir le fichier d’object partagé: aucun fichier ou répertoire de ce type

Comment avez-vous installé les librairies boost?

Le problème que vous rencontrez probablement est que l’éditeur de liens ne peut pas trouver les bibliothèques et lorsque vous avez créé votre programme, vous deviez spécifier manuellement des chemins de bibliothèque supplémentaires pour rechercher des bibliothèques.

Une solution rapide que vous pouvez faire est de définir LD_LIBRARY_PATH pour inclure le répertoire dans lequel se trouve la bibliothèque de threads boost:

export LD_LIBRARY_PATH=/path/to/boost/libs:$LD_LIBRARY_PATH

./runExecutable

En plus des autres réponses, vous pouvez également définir la balise DT_RPATH elf lors de la liaison de votre exécutable.

 -Wl,-rpath,/path/to/boost/libraries -L /path/to/boost/libraries -lboost_whatever 

De cette façon, vous ne devez pas oublier de définir LD_LIBRARY_PATH si les bibliothèques sont installées dans un emplacement non standard.

Vous devez définir la variable d’environnement LD_LIBRARY_PATH pour inclure le chemin d’access aux bibliothèques Boost (éventuellement dans /usr/local/lib , etc.).

En bash, c’est simplement

 export LD_LIBRARY_PATH=/path/to/boost:$LD_LIBRARY_PATH