Версия `GLIBCXX_3.4.15 'не найдена в CentOS (в файле /usr/lib/libstdc++.so.6)

16106
George Kastrinis

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

/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
Я не смотрел, чтобы увидеть, что у них есть, но вы пробовали EPEL Zan Lynx 9 лет назад 0

2 ответа на вопрос

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в вашей среде.

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

0
Chef Pharaoh

У меня была такая же проблема, поэтому я использовал эту ссылку для 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.

Наша версия CentOS - рабочая станция Red Hat Enterprise Linux версии 6.4. Так что по вашей ссылке пакет имеет до libstdc ++. So.6 (GLIBCXX_3.4.13) а не 3.4.15 George Kastrinis 11 лет назад 0
Ну, я использую ту же версию CentOS и у меня было то же сообщение об ошибке. Возможно, вы не заметили, но он поставляется с libstdc ++. So.6.0.17, который включает в себя версию, которую вы ищете, но вы также можете попробовать эту ссылку, которая имеет точную версию [glibcxx_3.4.15] (http://rpmfind.net) /linux/rpm2html/search.php?query=libstdc%2B%2B.so.6(GLIBCXX_3.4.15)) Chef Pharaoh 11 лет назад 0

Похожие вопросы