GLIBCXX_3.4.20 не найден, как исправить эту ошибку?

Сыворотка Я пытаюсь запустить редактор макета программы (доступен на этом сайте) на Ubuntu 14.04.1 64-битный LTS Я получаю следующий вывод в терминале:

$ layout
layout: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by layout)

Я попробовал команду strings на /usr/lib/x86_64-linux-gnu/libstdc++.so.6, как показано ниже, и вот вход и вывод:

$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | 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_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH

Как я могу решить эту проблему, я как-то догадываюсь, что она связана с GCC, но не может понять, как решить проблему. Кроме того, я попробовал PPA, как было предложено на на этом сайте , и аналогичный вопрос для более старой версии Ubuntu в GLIBCXX_3.4.15 не найден. Однако после того, как я запустил sudo update, я получил множество предупреждений, а список, который я получил с помощью команды strings, после установки gcc 4.9 не имел новых записей, поэтому я очистил PPA (Testchains Test Builds) с помощью ppa-purge. Любая помощь, предложения о том, как действовать, очень ценятся.

1
задан 13 April 2017 в 15:23

5 ответов

Это случилось со мной с anaconda 4.0.0 (как указано в @mjp), но для меня было исправить эту команду в моей среде:

conda install libgcc
55
ответ дан 24 May 2018 в 00:01
  • 1
    Это разрешило это для меня, попробовав множество решений из других потоков. – Shawn Anderson 23 October 2016 в 20:51
  • 2
    Работает также на Ubuntu 16.04 – fviktor 11 March 2017 в 06:10
  • 3
    это действительно спасло мою задницу пару раз! – MBZ 14 April 2017 в 21:38
  • 4
    Ubuntu 16.04 - решил это для меня. – Zhubarb 16 April 2017 в 11:49
  • 5
    это намного лучше .. работал для меня .. пытался «импортировать ROOT» в python – MycrofD 19 April 2017 в 14:45

У меня была эта проблема - это было потому, что у Anaconda2 не было версии GLIBCXX_3.4.20, что бы это ни было. Только до 0,19, то же, что и у вас.

Однако библиотека Ubuntu имела это. Поэтому я просто создал softlink / shortcut в библиотеке Anaconda для реальной библиотеки Linux, содержащей этот GLIBCXX_3.4.20, заменив предыдущий, и он отлично справился после перезапуска графического интерфейса python (Spyder).

это папка с именем libstdc++.so.6 в библиотеке Anaconda, которая находится здесь: ~/anaconda2/lib. В этой папке находятся версии скрипта / библиотеки-кода, за исключением того, что вам не хватает: GLIBCXX_3.4.20

Выполните следующие действия для решения проблемы:

перейдите в нужное место и создайте резервную копию текущего anaconda2 ярлыка (измените его имя, чтобы оно не было перезаписано):
cd ~/anaconda2/lib
mv -vf libstdc++.so.6 libstdc++.so.6.old
создайте новый ярлык с помощью команды ln (я предполагаю, что я нахожусь в предыдущем месте ~ / anaconda2 / lib):
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./libstdc++.so.6
перезапустить spyder / другой интерфейс, который вы используете

Теперь он должен работать!

10
ответ дан 24 May 2018 в 00:01

У меня было много раз в течение многих лет с множеством разных пакетов. Это всегда было разрешено:

sudo apt-get dist-upgrade

Если ваш dist обновляется, он почти всегда будет сбивать новую библиотеку C ++ и перенастраивать такие вещи, как то, что они работают снова. Проблема почти всегда вызвана тем, что ваша система не указывает на нужную библиотеку. В моем случае, как правило, это связано с тем, что указывается на кросс-компиляторную версию библиотеки.

2
ответ дан 24 May 2018 в 00:01
[F1]
1
ответ дан 24 May 2018 в 00:01

Я решил проблему вроде этого (но GLIBCXX_3.4.21) на CentOS, но она не зависит от os. Библиотека является частью gcc-компилятора, поэтому необходимо установить или скомпилировать соответствующую версию gcc. Это таблица версий gcc и версий соответствующего libstdc ++:

GCC 4.9.0: libstdc++.so.6.0.20
GCC 5.1.0: libstdc++.so.6.0.21
GCC 6.1.0: libstdc++.so.6.0.22
GCC 7.1.0: libstdc++.so.6.0.23
GCC 7.2.0: libstdc++.so.6.0.24
GCC 8.0.0: libstdc++.so.6.0.25

(полный список версий здесь)

Он не зависит от как установить gcc - он может быть установлен из пакета или скомпилирован и установлен из источников.

Возможно, что система gcc-библиотек доступна вместо новой. Поэтому нужно указать переменную окружения, где найти библиотеки, например, в командной строке следующим образом:

$ LD_LIBRARY_PATH=/usr/local/lib64 command args ...
1
ответ дан 24 May 2018 в 00:01

Другие вопросы по тегам:

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