2

Я пытаюсь использовать программу и получаю следующую ошибку.

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found

В /usr /lib64 libstdc++, который я вижу, это libstdc++. So.6.0.13 (и мягкая ссылка).

Со strings libstdc++.so.6.0.13 | grep GLIBCXX я получаю

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

С cat /etc/redhat-release я получаю

Red Hat Enterprise Linux Workstation release 6.4 (Santiago)

Так что вопрос в том, что мне делать, чтобы это исправить. Должен ли я установить несколько новых пакетов и если да, то какие?

2 ответа2

0

У меня была такая же проблема, поэтому я использовал эту ссылку для glibcxx_3.4.15 и вручную поместил содержимое в нужную папку (папка /usr /lib). После этого я смог запустить GDB на своих приложениях. Надеюсь это поможет.

РЕДАКТИРОВАТЬ: Выберите ссылку на вкладках ALT Linux и загрузите двоичный пакет (эти пакеты являются более общими и могут использоваться в различных дистрибутивах).

Пример: libstdc++ 6-4.7.2-alt7.i586.rpm - библиотека GNU Standard C++

Это будет включать libstdc++. So.6.0.17, а также libstdc++. So.6.0.15.

0

Вам необходимо установить более новую версию GCC и, если это отдельный пакет в CentOS, более новую версию gcc-libs. К сожалению, я не думаю, что такие последние версии будут доступны в репозитории CentOS.

Одним из вариантов будет установка последней версии GCC только для вашей учетной записи пользователя (т.е. не устанавливайте ее в масштабе всей системы, что поможет избежать некоторых потенциальных проблем). Вы можете сделать это довольно легко, используя GSRC, но, конечно, вы также можете просто скачать исходный архив GCC и указать нестандартный каталог в опции --prefix . Затем, когда вы создаете новое программное обеспечение, вам нужно будет указать LDFLAGS="-L /path/to/your/gcc/libs -L/usr/lib (etc)" , CFLAGS="-I /path/to/your/gcc/includes -I /usr/include (etc)" и, вероятно, что-то вроде CXX=/path/to/your/g++ . Когда вы запустите программу, вам потребуется LD_LIBRARY_PATH=/path/to/your/gcc/libs в вашей среде.

Кроме того, вы можете установить дистрибутив с более современным программным обеспечением, хотя я понимаю, что это не всегда возможно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .