libstdc ++. so.6: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio


92

Quiero ejecutar el comando Cilkscreen con un programa cilk ++ pero tengo este error

/usr/local/cilk/bin/../lib32/pinbin: error al cargar bibliotecas compartidas: libstdc ++. so.6: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio

Puedes ayudarme por favor

Respuestas:


221

Prueba esto:

apt-get install lib32stdc++6

6
Esto es mucho mejor que instalar ia32-libs (como lo propone trion). Al hacer esto, tuve que instalar 1 o 2 dependencias más, mientras que ia32-libs tiene 241 dependencias por un total de 267 MB de espacio adicional en disco.
Mike

1
Esto también funciona para ejecutar los dispositivos virtuales de Microsoft Windows para probar el programa autoextraíble. ¡Gracias!
Charles Engelke

4
@takeit Para una máquina de 64 bits, ¿deberíamos instalar en su lib64stdc++6lugar?
boddhisattva

@boddhisattva Creo que lib32stdc++6es para máquinas de 64 bits que ejecutan software de 32 bits. Algo parecido a "capa de compatibilidad". Para ejecutar software de 64 bits ("nativo") en una máquina de 64 bits, solo necesita libstdc++6. (Los enlaces son para Ubuntu 14.04 Trusty Tahr; no puedo encontrar el enlace para Ubuntu 10.10 Maverick Meerkat.)
Franklin Yu

Impresionante, aunque encontré este problema en una situación diferente en la que trato de crear el código fuente de Android, resolvió el problema perfectamente. Muchas gracias !!! ls
oscarzhou

15

Supongo que está ejecutando Linux en una máquina amd64. La carpeta en la que reside el ejecutable ( lib32) sugiere un ejecutable de 32 bits que requiere bibliotecas de 32 bits.

Estos parecen no estar presentes en su sistema, por lo que debe instalarlos manualmente. El nombre del paquete depende de su distribución, para Debian es ia32-libs, para Fedora libstdc++.<version>.i686.


Estoy ejecutando Linux en Ubuntu 10.10
ammouna

Luego, desea hacerlo a la manera de Debian e instalar ia32-libso cambiar a una versión de 64 bits del software que está intentando usar.
Fabian Knorr

Instalé este paquete, pero ahora tengo otro error "proceso muerto por señal -7 E: Error al adjuntar al pid 3874: operación no permitida"
ammouna

¿Parece que está intentando conectar un depurador / monitor de 64 bits a una aplicación de 32 bits o viceversa? Realmente debería intentar obtener componentes de 64 bits y crear ejecutables de 64 bits; esto hará la vida mucho más fácil.
Fabian Knorr

1
Cómo puedo hacer esto ? Soy un principiante de Linux y no te entiendo bien cómo conectar un depurador / monitor de 64 bits a una aplicación ov / s de 32 bits. ¿puedes explicar eso por favor
ammouna

9

Para uso de Fedora:

yum install libstdc++44.i686

Puede averiguar qué versiones son compatibles ejecutando:

yum list all | grep libstdc | grep i686


7

Para Red Hat:

sudo yum install libstdc++.i686
sudo yum install libstdc++-devel.i686

1

/usr/local/cilk/bin/../lib32/pinbin está vinculado dinámicamente a una biblioteca libstdc ++. so.6 que ya no está presente. Necesitas recompilar Cilk


pero libstdc ++. so.6 existe en la carpeta / usr / lib
ammouna

1
Sí, pero como es una aplicación de 32 bits, requiere /usr/lib32/libstdc++.so.6.
Fabian Knorr
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.