Сыворотка Я пытаюсь запустить редактор макета программы (доступен на этом сайте) на 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. Любая помощь, предложения о том, как действовать, очень ценятся.
Это случилось со мной с anaconda 4.0.0 (как указано в @mjp), но для меня было исправить эту команду в моей среде:
conda install libgcc
У меня была эта проблема - это было потому, что у 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 / другой интерфейс, который вы используете Теперь он должен работать!
У меня было много раз в течение многих лет с множеством разных пакетов. Это всегда было разрешено:
sudo apt-get dist-upgrade
Если ваш dist обновляется, он почти всегда будет сбивать новую библиотеку C ++ и перенастраивать такие вещи, как то, что они работают снова. Проблема почти всегда вызвана тем, что ваша система не указывает на нужную библиотеку. В моем случае, как правило, это связано с тем, что указывается на кросс-компиляторную версию библиотеки.
Я решил проблему вроде этого (но 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 ...