/usr/lib/libstdc++.so.6: versión `GLIBCXX_3.4.15 ‘no encontrado

¿Cómo puedo obtener GLIBCXX_3.4.15 en Ubuntu? No puedo ejecutar algunos progtwigs que estoy comstackndo.

Cuando lo hago:

strings /usr/lib/libstdc++.so.6 | grep GLIBC 

Yo obtengo:

 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 GLIBC_2.2.5 GLIBC_2.3 GLIBC_2.4 GLIBC_2.3.4 GLIBC_2.3.2 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH 

¡Gracias por cualquier ayuda!

Estoy comstackndo gcc 4.6 desde la fuente, y aparentemente

 sudo make install 

no atrapó este. Busqué y encontré

 gcc/trunk/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.15 

Lo copié en / usr / lib y redirigí libstdc ++. So.6 para apuntar al nuevo, y ahora todo funciona.

Estaba intentando que funcionara clang (que también requiere 6.0.15), y mientras hurgaba encontré que estaba instalado en /usr/local/lib/libstdc++.so.6.0.15 . Se instaló allí cuando instalé grafito (una versión experimental de gcc).

Si necesita acceder a bibliotecas en esa ubicación, deberá definir LD_LIBRARY_PATH como:

export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64

Pude tocar clang para trabajar después de hacer esto. Espero que sea útil para alguien.

He estado evitando este problema en el pasado simplemente vinculando libstdc ++ estáticamente con este parámetro enviado a g ++ al vincular mi ejecutable:

 -static-libstdc++ 

Si vincular en la biblioteca estáticamente es una opción, esta es probablemente la solución más rápida.

Me encuentro con este problema cuando trato de usar matlab eng para llamar a m funciones desde el código c. que ocurre con el comando mex -f .. ..

Mi solución:

 strings /usr/lib/i386-/libstdc++.so.6 | grep GLIBC 

Encontré que incluye 3.4.15

entonces mi sistema tiene las libs más nuevas.

el problema proviene del propio Matlab, llama a su propia libstdc ++. so.6 de {MATLAB}/bin

entonces, solo reemplácelo con la lib actualizada del sistema.

Para este error, copié la última libstdc ++. So.6.0.17 de otro servidor, y eliminé el enlace suave y lo recreé.

1. Copie libstdc ++. So.6.0.15 o la última desde otro servidor al sistema afectado.
En mi caso, SUSE linux 11 SP3 tenía lo último.
2. rm libstdc ++. So.6
3. ln -s libstdc ++. So.6.0.17 libstdc ++. So.6 (en el directorio / usr / lib64).

nJoy

gcc versión 4.8.1, el error parece ser:

/ root / bllvm / build / Release + Asserts / bin / llvm-tblgen: /usr/lib64/libstdc++.so.6: versión `GLIBCXX_3.4.15 ‘no encontrada (requerida por / root / bllvm / build / Release + Asserts / bin / llvm-tblgen)

Encontré libstdc ++. So.6.0.18 en el lugar donde cumplí gcc 4.8.1

Entonces me gusta esto

 cp ~/objdir/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.18 /usr/lib64/ rm /usr/lib64/libstdc++.so.6 ln -s libstdc++.so.6.0.18 libstdc++.so.6 

problema resuelto.

Acabo de enfrentar una edición similar de la versión LLVM 3.7. primero compruebe si ha instalado la biblioteca requerida en su sistema:

 $locate libstdc++.so.6.* 

A continuación, agregue la ubicación encontrada a su variable de entorno $ LD_LIBRARY_PATH.

Tengo el mismo error. Así es como funcionó para mí:

  • limpiado el proyecto bajo gcc actualmente instalado
  • recomstackrlo

Funcionó a la perfección!

Los extraje de un RPM ( RPM para libstdc ++ ) y luego:

 export LD_LIBRARY_PATH=. 

Para configurar el sistema para buscar las bibliotecas en el directorio actual. Entonces solo ejecuté mi progtwig. Pero en mi caso, he recibido un único ejecutable que necesitaba, no era un cambio de todo el sistema.

A veces no controla la máquina de destino (por ejemplo, su biblioteca necesita ejecutarse en un sistema empresarial bloqueado). En tal caso, deberá volver a comstackr su código utilizando la versión de GCC que corresponde a su versión GLIBCXX. En ese caso, puede hacer lo siguiente:

  1. Busque la última versión de GLIBCXX compatible con la máquina de destino: strings /usr/lib/libstdc++.so.6 | grep GLIBC strings /usr/lib/libstdc++.so.6 | grep GLIBC … Digamos que la versión es 3.4.19 .
  2. Use https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html para encontrar la versión GCC correspondiente. En nuestro caso, esto es [4.8.3, 4.9.0) .

Tuve un problema similar y lo resolví vinculando estáticamente libstdc++ al progtwig que estaba comstackndo, así:

 $ LIBS=-lstdc++ ./configure ... etc. 

en lugar de lo usual

 $ ./configure ... etc. 

Es posible que haya problemas con esta solución al cargar bibliotecas compartidas en tiempo de ejecución, pero no he investigado el tema lo suficiente como para comentar.

Tuve el mismo problema antes, y lo solucioné, los pasos se pueden encontrar en este error de reparación “GLIBCXX_3.4.15” en matlab

Error con GLIBCXX_3.4.14 Necesita instalar una versión más nueva de GCC. http://pkgs.org/download/libstdc++.so.6 goto:

http://geeksterminal.com/how-to-install-glib-glibc/1392/

y sigue las instrucciones

Tuve el mismo problema porque cambié el usuario de mí mismo a otra persona:

su

Por alguna razón, después de la comstackción normal, no pude ejecutarla (el mismo mensaje de error). Directamente ssh a la otra cuenta de usuario funciona.

Tenía varias versiones del comstackdor gcc instaladas y necesitaba usar una versión más reciente que la instalación predeterminada. Como no soy un administrador del sistema para nuestros sistemas Linux, no puedo simplemente cambiar / usr / lib o muchas de las otras sugerencias anteriores. Estaba encontrando este problema y finalmente lo rastreé para establecer mi ruta al directorio de la biblioteca de 32 bits en lugar del directorio de la biblioteca de 64 bits (lib64). Dado que las bibliotecas en el directorio de 32 bits eran incompatibles, el sistema adoptó de manera predeterminada la versión anterior, que estaba desactualizada.

El uso de -L en la ruta a la que hacía referencia dio advertencias sobre “omitir libstdc ++ incompatible. Por lo tanto, al buscar -lstdc ++”. Esta fue la pista que me ayudó a resolver finalmente el problema.

Lo mismo con gcc versión 4.8.1 (GCC) y libstdc++.so.6.0.18 . Tuve que copiarlo aquí /usr/lib/x86_64-linux-gnu en mi cuadro ubuntu.

En mi caso, LD_LIBRARY_PATH tenía / usr / lib64 antes que / usr / local / lib64. (Estaba construyendo llvm 3.9).
El nuevo comstackdor gcc que instalé para comstackr llvm 3.9 tenía bibliotecas que usaban las bibliotecas GLIBCXX más nuevas en / usr / local / lib64. Por lo tanto, preparé LD_LIBRARY_PATH para que el enlazador vea primero / usr / local / lib64.
Eso resolvió este problema.