web-dev-qa-db-fra.com

version 'CXXABI_1.3.8' non trouvée (requise par ...)

Lorsque j'exécute mon programme après une compilation, le message d'erreur suivant s'affiche:

./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version CXXABI_1.3.8' not found (required by ./prog) ./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.19 'introuvable (requis par ./prog) ./prog:/usr/lib/x86_64-linux-gnu/libstdc ++. so.6: la version `GLIBCXX_3.4.20 'n'a pas été trouvée (requise par /home/arman/lib/boost_1_55_0/stage/lib/libboost_serialization.so.1.55.0)

J'ai les deux boost 1.55.0 et 4.9.0 gcc installés dans ~/lib/boost_1_55_0 et ~/lib/gcc-4.9.0 respectivement, et j’imagine que c’est la raison pour laquelle j’ai des problèmes, mais je ne sais pas comment y remédier.

mon ~/.profile contient la ligne suivante:

export LD_LIBRARY_PATH =/home/utilisateur/lib/boost_1_55_0/stage/lib: $ LD_LIBRARY_PATH

46
quant

GCC 4.9 introduit une version ABI C++ plus récente que celle de votre système, libstdc ++. Vous devez donc indiquer au chargeur d’utiliser cette version plus récente de la bibliothèque en ajoutant ce chemin à LD_LIBRARY_PATH. Malheureusement, je ne peux pas vous dire directement où se trouve libstdc ++, donc pour votre installation de GCC 4.9, car cela dépend de la façon dont vous avez configuré GCC. Donc, vous avez besoin de quelque chose dans le style de:

export LD_LIBRARY_PATH=/home/user/lib/gcc-4.9.0/lib:/home/user/lib/boost_1_55_0/stage/lib:$LD_LIBRARY_PATH

Notez que le chemin réel peut être différent (il pourrait y avoir un sous-répertoire caché dessous, comme `x86_64-unknown-linux-gnu/4.9.0´ ou similaire).

39
rubenvb