Arreglar libstdc++.so.6 versión GLIBCXX_3.4.21 no encontrado

1. Preguntas:

Al instalar el susurro hoy, de repente informé de un error de este tipo:

OSError: Could not load shared object file: libllvmlite.so
Errors were: [OSError("/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 
(required by /opt/conda3/lib/python3.9/site-packages/llvmlite/binding/libllvmlite.so)"), OSError('libllvmlite.so: cannot open shared object file: No such file or directory'), OSError('./libllvmlite.so: cannot open shared object file: No such file or directory'), OSError("/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 
(required by /opt/conda3/lib/python3.9/site-packages/llvmlite/binding/libllvmlite.so)")]

Dos, la razón

1. Se llama a la versión alta de gcc y la biblioteca dinámica generada no reemplaza la biblioteca dinámica de la versión anterior de gcc

3. Soluciones

1. Ver la versión compatible de libstdc++.so.6

(base) [root@comm-agi lib64]# strings /lib64/libstdc++.so.6 | grep GLIBC
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

Como se puede ver en lo anterior: la biblioteca dinámica de gcc no tiene la versión 3.4.21

2. Busque una versión superior del archivo de la biblioteca dinámica y luego cópielo en el directorio /lib64

2.1 Puedes descargarlo de Internet o buscarlo localmente

2.2 Primero mire la versión original: entre en el directorio /lib64: ll|grep libstdc++.so.6

Mire la posición de la flecha roja, la versión original es 6.0.19

2.3 Busque una versión superior directamente localmente e ingrese el comando:

(base) [raíz@lib64]# buscar / -nombre "libstdc++.so.6.0*"

Los resultados de la búsqueda muestran:

/usr/lib/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6.0.28

2.4, así que copié 6.0.28 al directorio /lib64: cp /usr/lib64/libstdc++.so.6.0.28 /lib64

2.5 Elimine el enlace suave original: rm /lib64/libstdc++.so.6 

2.6, Cree un nuevo enlace suave: ln -s /lib64/libstdc++.so.6.0.28 /lib64/libstdc++.so.6

(base) [root@ lib64]# ll|grep libstdc++.so.6
lrwxrwxrwx   1 root root        30 Aug 10 17:26 libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.28
-rwxr-xr-x   1 root root    995840 Sep 30  2020 libstdc++.so.6.0.19
-rwxr-xr-x   1 root root  13121976 Aug 10 17:15 libstdc++.so.6.0.28

Eso es todo. Sin embargo, creo que no es necesario copiarlo en el directorio /lib64. Simplemente cree un enlace suave directamente desde la conexión en el lado 2.3

Supongo que te gusta

Origin blog.csdn.net/duzm200542901104/article/details/132218862
Recomendado
Clasificación