2010-09-16 18 views
9

Mi cliente tenía un desarrollador que escribía una pequeña aplicación de línea de comandos de C++ para ejecutar en sus servidores Linux. En uno de los servidores (corriendo Fedora 11), cuando ejecuto la aplicación me sale el siguiente error:libstdC++. So.5: no se puede abrir el archivo de objeto compartido, pero la biblioteca está instalada y actualizada

error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory 

Obviamente, la primera cosa que hice fue

yum install libstdc++ 

Pero consigo

Package libstdc++-4.4.1-2.fc11.x86_64 already installed and latest version 

Por lo que la biblioteca ya existe y está actualizada. Por lo general, estos errores indican una biblioteca faltante. Entonces, ¿dónde debería mirar después?

Respuesta

9

libstdc++-4.4.1-2.fc11.x86_64 instala libstdc++.so.6. Necesita el paquete compat-libstdc++-33-3.2.3-66.x86_64 para obtener libstdc++.so.5. (¡No enlace simbólico! libstdc++.so.5 y libstdc++.so.6 son incompatibles.)

0

¿Ha comprobado que el paquete instala libstdC++. So.5 y no alguna otra versión? Ese es tu problema más probable.

+2

-1 No es una respuesta informativa. –

+1

Esto no responde la pregunta. Esto debería ser un comentario. –

3

libstdC++. So.5 es una versión muy antigua de la biblioteca estándar de C++.

Haga un yum search libstdc++, tendrá que instalar uno de los paquetes compat-libstdC++.

14

rpm, por lo tanto, el repositorio conoce los nombres de las bibliotecas compartidas y lo que los proporciona. Así

yum install 'libstdc++.so.5'

Wiil instalar lo que sea necesario si el repositorio tiene.

En su caso, obtendría compat-libstdC++ - 33-3.2.3-66.i586.rpm y sus deps de 32 bits si no los tiene porque el binario que está tratando de ejecutar es aparentemente 32-bit

6

yum install compat-libstdC++ - 33 resuelto esto para mí.

0

Según lo expresado por caf and aaron, ejecutar yum install compat-libstdc++-33 libstdc++.so.5 -y funcionó cuando recibí un error similar.

La única pega con la que me topé fue que no tenía el repo correcto revisado, así que tuve que ejecutar yum-config-manager --enable rhel-7-server-optional-rpms para acceder a los archivos. Si está utilizando algo que no sea RedHat 7, deberá buscar el repositorio correcto.

Siempre se puede verificar primero si tiene el repositorio correcto ejecutando yum provides libstdc++.so.5 primero.

Cuestiones relacionadas