Wenn ich mein Programm nach einer Kompilierung ausführe, erhalte ich folgenden Fehler:
./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: Version
CXXABI_1.3.8' nicht gefunden (benötigt von ./prog) ./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: Version
GLIBCXX_3.4.19' nicht gefunden (wird von ./prog benötigt) ./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: Version `GLIBCXX_3.4.20' nicht gefunden (benötigt von /home/arman/lib/boost_1_55_0/stage/lib/libboost_serialization.so.1.55.0)
Ich habe sowohl boost 1.55.0 als auch gcc 4.9.0 in ~/lib/boost_1_55_0
bzw. ~/lib/gcc-4.9.0
installiert, und ich vermute, dass dies der Grund für meine Probleme ist, aber ich weiß nicht, wie ich das Problem beheben kann.
mein ~/.profile
enthält die folgende Zeile:
export LD_LIBRARY_PATH=/home/user/lib/boost_1_55_0/stage/lib:$LD_LIBRARY_PATH
GCC 4.9 führt eine neuere C++ ABI-Version ein als die libstdc++ Ihres Systems. Sie müssen also dem Lader mitteilen, dass er diese neuere Version der Bibliothek verwenden soll, indem Sie diesen Pfad zu LD_LIBRARY_PATH
hinzufügen. Leider kann ich Ihnen nicht direkt sagen, wo sich die libstdc++ so für Ihre GCC 4.9-Installation befindet, da dies davon abhängt, wie Sie GCC konfiguriert haben. Sie brauchen also etwas in der Art von:
export LD_LIBRARY_PATH=/home/user/lib/gcc-4.9.0/lib:/home/user/lib/boost_1_55_0/stage/lib:$LD_LIBRARY_PATH
Beachten Sie, dass der tatsächliche Pfad anders sein kann (es könnte ein Unterverzeichnis darunter versteckt sein, wie `x86_64-unknown-linux-gnu/4.9.0´ oder ähnlich).