¿Cómo puedo obtener GLIBCXX_3.4.15 en Ubuntu? No puedo ejecutar algunos programas que estoy compilando.
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!
apt-get
solución basada a este problema se describe aquí: superuser.com/questions/310809/...He estado evitando este problema en el pasado simplemente vinculando libstdc ++ estáticamente con este parámetro enviado a g ++ al vincular mi ejecutable:
Si vincular estáticamente en la biblioteca es una opción, esta es probablemente la solución más rápida.
fuente
Estaba tratando de hacer que el sonido metálico funcionara (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 acceso a bibliotecas en esa ubicación, deberá definirlo
LD_LIBRARY_PATH
como:export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
Pude hacer que el sonido metálico funcionara después de hacer esto. Espero que sea útil para alguien.
fuente
LD_LIBRARY_PATH
los afectará. todos se vincularán a la nueva biblioteca. Al final, la mayoría de los archivos binarios no funcionan: por ejemplols
grep
, ...:ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
Me encuentro con este problema cuando intento usar matlab eng para llamar a funciones m desde el código c. que ocurre con el comando
mex -f .. ..
Mi solución:
Encontré que incluye 3.4.15
entonces mi sistema tiene las bibliotecas más nuevas.
el problema proviene de matlab, llama a su propio libstdc ++. so.6 de
{MATLAB}/bin
entonces, simplemente reemplácelo con la versión actualizada del sistema lib.
fuente
{MATLAB}/bin
el archivo/usr/lib/
y luego reiniciar matlab. Esto funciona en Matlab 2010b en Fedora 14 x64.Tengo el mismo error Así es como funcionó para mí:
Funcionó perfectamente!
fuente
Para este error, copié el último libstdc ++. So.6.0.17 de otro servidor, eliminé el enlace flexible y lo recreé.
1. Copie libstdc ++. So.6.0.15 o la versión más reciente de otro servidor al sistema afectado.
En mi caso, SUSE linux 11 SP3 tuvo la última versión.
2. rm libstdc ++. So.6
3. ln -s libstdc ++. So.6.0.17 libstdc ++. So.6 (bajo el directorio / usr / lib64).
nJoy
fuente
Acabo de enfrentar un problema similar al construir la versión LLVM 3.7. primero verifique si ha instalado la biblioteca requerida en su sistema:
Luego agregue la ubicación encontrada a su variable de entorno $ LD_LIBRARY_PATH.
fuente
A veces no controlas la máquina de destino (por ejemplo, tu biblioteca necesita ejecutarse en un sistema empresarial bloqueado). En tal caso, deberá volver a compilar su código utilizando la versión de GCC que corresponde a su versión GLIBCXX. En ese caso, puede hacer lo siguiente:
strings /usr/lib/libstdc++.so.6 | grep GLIBC
... Digamos que la versión es3.4.19
.[4.8.3, 4.9.0)
.fuente
gcc versión 4.8.1, el error parece ser:
Encontré el libstdc ++. So.6.0.18 en el lugar donde cumplí con gcc 4.8.1
Entonces me gusta esto
problema resuelto.
fuente
Los extraje de un RPM ( RPM para libstdc ++ ) y luego:
Para configurar el sistema para buscar las bibliotecas en el directorio actual. Luego solo ejecuté mi programa. Pero en mi caso recibí un solo ejecutable que necesitaba, no fue un cambio en todo el sistema.
fuente
Tuve un problema similar y lo resolví mediante la vinculación estática
libstdc++
al programa que estaba compilando, así:en lugar de lo habitual
Puede haber problemas con esta solución relacionada con la carga de bibliotecas compartidas en tiempo de ejecución, pero no he investigado el problema lo suficiente como para comentar.
fuente
Error con GLIBCXX_3.4.14 Necesita instalar una versión más nueva de GCC. http://pkgs.org/download/libstdc++.so.6 ir a:
http://geeksterminal.com/how-to-install-glib-glibc/1392/
y sigue las instrucciones.
fuente
Tuve el mismo problema porque cambié el usuario de mí mismo a otra persona:
su
Por alguna razón, después de la compilación normal, no pude ejecutarla (el mismo mensaje de error). Directamente ssh a la otra cuenta de usuario funciona.
fuente
Tenía instaladas varias versiones del compilador gcc y necesitaba usar una versión más reciente que la instalación predeterminada. Como no soy administrador del sistema para nuestros sistemas Linux, no puedo simplemente cambiar / usr / lib o muchas de las otras sugerencias anteriores. Me encontraba con este problema y finalmente lo rastreé hasta 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 usó la versión anterior que estaba desactualizada.
El uso de -L en la ruta a la que hacía referencia daba advertencias sobre "omitir libstdc ++ incompatible. Así que al buscar -lstdc ++". Esta fue la pista que finalmente me ayudó a resolver el problema.
fuente
Lo mismo con la versión gcc
4.8.1 (GCC)
ylibstdc++.so.6.0.18
. Tuve que copiarlo aquí/usr/lib/x86_64-linux-gnu
en mi cuadro de ubuntu.fuente
En mi caso, LD_LIBRARY_PATH tenía / usr / lib64 primero antes de / usr / local / lib64. (Estaba construyendo llvm 3.9).
El nuevo compilador gcc que instalé para compilar llvm 3.9 tenía bibliotecas que usaban bibliotecas GLIBCXX más nuevas en / usr / local / lib64. Así que arreglé LD_LIBRARY_PATH para que el enlazador vea primero / usr / local / lib64.
Eso resolvió este problema.
fuente
Acabo de usar -static-libstdc ++ mientras construía. w / that, puedo ejecutar el a.out
fuente
Para fines de prueba:
En la máquina original, busque la biblioteca, copie en el mismo directorio que el ejecutable:
Luego copie esta misma biblioteca en la máquina de destino y ejecute el ejecutable:
Nota: el comando anterior es temporal; No es un cambio en todo el sistema.
fuente
Tuve el mismo problema antes, y lo arreglé, los pasos se podían encontrar en este error de fijación "GLIBCXX_3.4.15" en matlab
fuente