GLIBCXX_3.4.20 no encontrado, ¿cómo solucionar este error?

90

Whey, intento ejecutar el programa Layout Editor (disponible en este sitio ) en Ubuntu 14.04.1 LTS de 64 bits Obtengo la siguiente salida en la terminal:

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

Probé el comando strings en /usr/lib/x86_64-linux-gnu/libstdc++.so.6 como sigue y aquí está la entrada y la salida:

$ 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

¿Cómo puedo resolver este problema? De alguna manera supongo que está relacionado con GCC pero no puedo encontrar la manera de solucionar el problema. Además, he probado un PPA como se sugiere en ¿Cómo uso el último GCC en Ubuntu? y hay una pregunta similar para una versión anterior de Ubuntu en GLIBCXX_3.4.15 no encontrado . Sin embargo, después de ejecutar sudo update recibí numerosas advertencias y la lista que obtuve con el comando de cadenas no tenía entradas nuevas después de instalar gcc 4.9 , así que purgué el PPA ( Toolchains Test Builds ) con ppa-purge . Cualquier ayuda, sugerencias sobre cómo proceder son muy apreciadas.

    
pregunta Vesnog 19.01.2015 - 20:36

6 respuestas

85

Estaba teniendo el mismo problema al intentar ejecutar otro programa, y ​​encontré una solución en StackOverflow .

Básicamente, solo haz los siguientes comandos: En primer lugar, instale:

sudo apt-get install libstdc++6

Esto ya debería estar instalado de forma predeterminada, pero inténtalo de todos modos. Si no lo resuelve, solo haga lo siguiente:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

No realicé el comando "dist-upgrade", pero los que tenía antes lo resolvieron para mí

    
respondido por el Paulo 08.02.2015 - 00:32
55

Me sucedió con anaconda 4.0.0 (como @mjp declaró), pero la solución para mí fue ejecutar este comando en mi entorno:

conda install libgcc
    
respondido por el neok 14.06.2016 - 15:37
10

Tuve este problema, fue porque Anaconda2 no tenía la versión GLIBCXX_3.4.20 de lo que sea que sea eso. Solo hasta .19, igual que el tuyo.

Sin embargo, la biblioteca de Ubuntu sí lo tenía . Así que acabo de crear un enlace directo / acceso directo en la biblioteca de Anaconda a la biblioteca real de Linux que contiene ese GLIBCXX_3.4.20, reemplazando el anterior, y funcionó bien después de reiniciar la GUI de Python (Spyder).

Debería haber una carpeta llamada libstdc++.so.6 en la biblioteca Anaconda, que está aquí: ~/anaconda2/lib . Dentro de esta carpeta están las versiones de la secuencia de comandos / library-code-thing, excluyendo la que le falta: GLIBCXX_3.4.20

Siga estos pasos para resolver el problema:

  1. vaya a la ubicación correcta y respaldo a su acceso directo anaconda2 actual (cambie su nombre para que no se sobrescriba):

    cd ~/anaconda2/lib
    mv -vf libstdc++.so.6 libstdc++.so.6.old
    
  2. crea un nuevo atajo usando el comando ln (supongo que estoy en la ubicación anterior ~ / anaconda2 / lib):

    ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./libstdc++.so.6
    
  3. reinicia spyder / otra interfaz que usas

¡Ahora debería funcionar!

    
respondido por el mjp 28.04.2016 - 21:09
3

Resolví un problema como este (pero GLIBCXX_3.4.21) en CentOS pero no depende de os. La biblioteca es parte del compilador gcc, por lo que necesita instalar o compilar la versión apropiada de gcc. Esta es la tabla de versiones de gcc y las versiones de libstdc ++ apropiadas:

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

(la lista completa de versiones es aquí )

No depende de cómo instalar gcc: puede instalarse desde un paquete o compilarse e instalarse desde las fuentes.

Es posible que las bibliotecas gcc del sistema estén disponibles en lugar de nuevas. Por lo tanto, es necesario especificar la variable de entorno donde encontrar las bibliotecas, por ejemplo, en una línea de comandos como esta:

$ LD_LIBRARY_PATH=/usr/local/lib64 command args ...
    
respondido por el oklas 19.03.2018 - 12:50
2

Lo he tenido muchas veces a lo largo de los años con muchos paquetes diferentes. Siempre ha sido resuelto por:

sudo apt-get dist-upgrade

Si su dist se puede actualizar, casi siempre reducirá una nueva biblioteca de C ++ y volverá a configurar cosas como que funcionan nuevamente. El problema casi siempre se debe a que su sistema no apunta a la biblioteca correcta. En mi caso, generalmente se debe a que apunta a una versión de compilación cruzada de una biblioteca.

    
respondido por el Bryan Wilcutt 23.09.2016 - 15:25
1
sudo cp /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6 /usr/bin/YourGccVersionLibrary/lib64/libstdc++.so.6.0.20 /usr/lib/x86_64_linux-gnu/
    
respondido por el Mati 11.11.2015 - 20:55

Lea otras preguntas en las etiquetas