libstdc ++. so.6: impossible d'ouvrir le fichier objet partagé: aucun fichier ou répertoire de ce type

92

Je veux exécuter la commande Cilkscreen avec un programme cilk ++ mais j'ai cette erreur

/usr/local/cilk/bin/../lib32/pinbin: erreur lors du chargement des bibliothèques partagées: libstdc ++. so.6: impossible d'ouvrir le fichier objet partagé: aucun fichier ou répertoire de ce type

Pouvez-vous m'aider s'il vous plaît

ammouna
la source

Réponses:

221

Essaye ça:

apt-get install lib32stdc++6
prends-le
la source
6
C'est bien mieux que d'installer ia32-libs (comme proposé par trion). Pour ce faire, j'ai dû installer 1 ou 2 autres dépendances tandis que ia32-libs a 241 dépendances totalisant 267 Mo d'espace disque supplémentaire.
Mike
1
Cela fonctionne également pour exécuter les appareils virtuels Microsoft Windows pour tester le programme auto-extractible. Merci!
Charles Engelke
4
@takeit Pour une machine 64 bits, devrions-nous installer à la lib64stdc++6place?
boddhisattva
@boddhisattva je pense que lib32stdc++6c'est pour une machine 64 bits exécutant un logiciel 32 bits. Quelque chose de similaire à "couche de compatibilité". Pour exécuter un logiciel 64 bits ("natif") sur une machine 64 bits, vous avez juste besoin libstdc++6. (Les liens sont pour Ubuntu 14.04 Trusty Tahr; je ne trouve pas le lien pour Ubuntu 10.10 Maverick Meerkat.)
Franklin Yu
Génial, même si j'ai rencontré ce problème dans une situation différente où j'essaie de créer du code source Android, cela a parfaitement résolu le problème. Merci beaucoup !!! ls
oscarzhou
15

Je suppose que vous exécutez Linux sur une machine amd64. Le dossier dans lib32lequel réside votre exécutable ( ) suggère un exécutable 32 bits qui nécessite des bibliothèques 32 bits.

Ceux-ci ne semblent pas être présents sur votre système, vous devez donc les installer manuellement. Le nom du paquet dépend de votre distribution, pour Debian c'est ia32-libs, pour Fedora libstdc++.<version>.i686.

Fabian Knorr
la source
J'exécute
Ensuite, vous voulez le faire à la manière Debian et installer ia32-libsou passer à une version 64 bits du logiciel que vous essayez d'utiliser.
Fabian Knorr
J'ai été installé ce paquet mais j'obtiens maintenant une autre erreur "processus tué par le signal -7 E: Attach to pid 3874 failed: Operation not
allowed
On dirait que vous essayez de connecter un débogueur / moniteur 64 bits à une application 32 bits ou vice versa? Vous devriez vraiment essayer d'obtenir des composants 64 bits et créer des exécutables 64 bits; cela rendra la vie beaucoup plus facile.
Fabian Knorr
1
Comment puis-je faire ceci ? Je suis un débutant Linux et je ne comprends pas bien comment attacher un débogueur / moniteur 64 bits à une application ov / s 32 bits. pouvez-vous expliquer cela s'il vous plaît
ammouna
9

Pour l'utilisation de Fedora:

yum install libstdc++44.i686

Vous pouvez découvrir quelles versions sont prises en charge en exécutant:

yum list all | grep libstdc | grep i686

gilm
la source
7

Pour Red Hat:

sudo yum install libstdc++.i686
sudo yum install libstdc++-devel.i686
Arpit Gupta
la source
1

/usr/local/cilk/bin/../lib32/pinbin est lié dynamiquement à une bibliothèque libstdc ++. so.6 qui n'est plus présente. Vous devez recompiler Cilk

Thomas
la source
mais libstdc ++. so.6 existe dans le dossier / usr / lib
ammouna
1
Oui, mais comme il s'agit d'une application 32 bits, cela nécessite /usr/lib32/libstdc++.so.6.
Fabian Knorr