0

Ошибка: версия `CXXABI_1.3.8` не найдена (требуется для ...)

1

Недавно я столкнулся с проблемой, когда запускаю свою программу после компиляции. Я получаю следующую ошибку:

./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: версия 'CXXABI_1.3.8' не найдена (требуется ./prog)
./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: версия 'GLIBCXX_3.4.19' не найдена (требуется ./prog)
./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: версия 'GLIBCXX_3.4.20' не найдена (требуется /home/arman/lib/boost_1_55_0/stage/lib/libboost_serialization.so.1.55.0)

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

В моем файле ~/.profile есть следующая строка:

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

Пожалуйста, подскажите, как можно решить эту проблему с ошибками о версиях библиотек.

1 ответ(ов)

0

Проблема заключается в том, что ваша версия GCC 4.9 использует более новую версию ABI C++, чем та, что доступна в вашей системной библиотеке libstdc++. Чтобы решить эту проблему, вам нужно указать загрузчику использовать новую версию библиотеки, добавив путь к ней в переменную окружения LD_LIBRARY_PATH. К сожалению, я не могу точно сказать, где расположена libstdc++ для вашей установки 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 или что-то подобное). Чтобы найти правильный путь, вам может понадобиться ознакомиться с настройками вашей сборки GCC или провести поиск в файловой системе.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь