GLIBCXX_3.4.20 не найден, как исправить эту ошибку?
Когда я пытаюсь запустить программу Layout Editor (доступна на этом сайте) в 64-битной LTS Ubuntu 14.04.1, я получаю следующий вывод в терминале:
$ 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, как предложено в разделе Как использовать последнюю версию GCC в Ubuntu? и есть аналогичный вопрос для более старой версии Ubuntu в GLIBCXX_3.4.15 не найден. Однако после того, как я побежал sudo update
Я получаю множество предупреждений, и в списке, который я получил с помощью команды strings, не было новых записей после установки gcc 4.9
поэтому я очистил PPA ( Toolchains Test Builds) с ppa-purge
, Любая помощь, предложения о том, как поступить, с благодарностью.
9 ответов
У меня возникла та же проблема при попытке запустить другую программу, и я нашел решение для StackOverflow.
В основном, просто выполните следующие команды: во-первых, установите:
sudo apt-get install libstdc++6
Это уже должно быть установлено по умолчанию, но попробуйте в любом случае. Если это не решит проблему, просто сделайте следующее:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
Я не выполнил команду "dist-upgrade", но те, что раньше, решили ее для меня
Это случилось со мной с anaconda 4.0.0 (как сказано в @mjp), но исправление для меня состояло в том, чтобы запустить эту команду в моей среде:
conda install libgcc
У меня была эта проблема - это было потому, что Anaconda2
не было версии GLIBCXX_3.4.20 какой бы то ни было вещи. Только до.19, такой же как у тебя.
Однако в библиотеке Ubuntu это было. Поэтому я просто создал мягкую ссылку / ярлык в библиотеке Anaconda на настоящую библиотеку Linux, содержащую этот GLIBCXX_3.4.20, заменив предыдущую, и она работала нормально после перезапуска Python GUI (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 / другой интерфейс, который вы используете
Теперь должно работать!
Я решил проблему, как это (но GLIBCXX_3.4.21) на CentOS, но это не зависит от ОС. Библиотека является частью компилятора 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 ...
before_install:
# Этот обходной путь необходим, чтобы избежать ошибок libstdC++ при запуске "расширенного" hugo с поддержкой SASS.
wget -q -O libstdc++6 http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb
sudo dpkg --force-all -i libstdc++6
установить:
wget -q -O hugo.deb https://github.com/gohugoio/hugo/releases/download/v0.46/hugo_extended_0.46_Linux_64bit.deb
sudo dpkg -i hugo.deb
Я нашел это решение здесь
Я имел это много раз в течение многих лет со многими различными пакетами. Это всегда было решено путем:
sudo apt-get dist-upgrade
Если ваш дистрибутив может быть обновлен, он почти всегда отключит новую библиотеку C++ и перенастроит такие вещи, чтобы они снова работали. Проблема почти всегда вызвана тем, что ваша система не указывает на нужную библиотеку. В моем случае это обычно вызвано указанием на кросс-компиляторную версию библиотеки.
sudo cp /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6 /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6.0.20 /usr/lib/x86_64_linux-gnu/
У меня была такая же проблема при установке Ubuntu 18.04 в Virtualbox с изображением живого сервера. Я не уверен, что сделал не так, но получил ту же ошибку
"apt-get: symbol lookup error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: undefined symbol: , version GLIBCXX_3.4.11"
Я использовал 64-разрядную версию, и мне пришлось загрузить этот файл с помощью
wget http://security.ubuntu.com/ubuntu/pool/main/g/gcc-8/libstdc++6_8.4.0-1ubuntu1~18.04_amd64.deb
и установлен с помощью
dpkg -i
. Потом все нормально работает с APT.
Затем сделал
apt-get upgrade
чтобы убедиться, что все в порядке.
Это сработало для меня (даже для более новых glibcxx, таких как GLIBCXX_3.4.29)
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt обновить libstdc++6