версия 'CXXABI 1.3.8' не найдена (требуется...) [дубликат]

этот вопрос уже есть ответ здесь:

когда я запускаю мою программу после компиляции, я получаю следующую ошибку:

./еда: в /usr/lib в/x86_64 с-линукс-дистрибутив GNU/libstdc++в.так.6: версия CXXABI_1.3.8' not found (required by ./prog) ./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: versionGLIBCXX_3.4.19' не найдено (требуется ./еда) ./ prog:/usr/lib/x86_64-linux-gnu / libstdc++.Итак.6: версия ' GLIBCXX_3.4.20' не найдено (требуется /home/arman/lib/boost_1_55_0/stage/lib/libboost_serialization.так что ... .1.55.0)

у меня есть как boost 1.55.0, так и gcc 4.9.0, установленные в ~/lib/boost_1_55_0 и ~/lib/gcc-4.9.0 соответственно, и я предполагаю, что именно поэтому у меня возникли проблемы, но я не уверен, как это исправить он.

мой ~/.profile содержит следующую строку:

экспорт в переменной LD_LIBRARY_PATH=/главная/пользователя/Либ/boost_1_55_0/этап в/lib:$переменная LD_LIBRARY_PATH

1 ответов


GCC 4.9 представляет более новую версию C++ ABI, чем ваша система libstdc++, поэтому вам нужно сказать загрузчику использовать эту более новую версию библиотеки, добавив этот путь к LD_LIBRARY_PATH. К сожалению, я не могу сказать вам сразу, где находится libstdc++ so для вашей установки GCC 4.9, так как это зависит от того, как вы настроили GCC. Так что вам нужно что-то в стиле:

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

обратите внимание, что фактический путь может отличаться (может быть какой-то подкаталог скрыт под там, как ' x86_64-unknown-linux-gnu / 4.9.0 или аналогичный).