libstdc ++. so.6: freigegebene Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis


92

Ich möchte den Befehl Cilkscreen mit einem Programm cilk ++ ausführen, habe aber diesen Fehler erhalten

/usr/local/cilk/bin/../lib32/pinbin: Fehler beim Laden gemeinsam genutzter Bibliotheken: libstdc ++. so.6: Datei für gemeinsam genutzte Objekte kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis

Kannst du mir bitte helfen

Antworten:


219

Versuche dies:

apt-get install lib32stdc++6

6
Dies ist viel besser als die Installation von ia32-libs (wie von trion vorgeschlagen). Dazu musste ich 1 oder 2 andere Abhängigkeiten installieren, während ia32-libs 241 Abhängigkeiten hat, die insgesamt 267 MB zusätzlichen Speicherplatz ergeben.
Mike

1
Dies funktioniert auch, um die virtuellen Microsoft Windows-Appliances zum Testen des selbstextrahierenden Programms auszuführen. Vielen Dank!
Charles Engelke

4
@takeit Sollten wir lib64stdc++6stattdessen eine 64-Bit-Maschine installieren ?
Boddhisattva

@ Boddhisattva Ich denke, lib32stdc++6ist für 64-Bit-Maschine mit 32-Bit-Software. Ähnliches wie "Kompatibilitätsschicht". Um 64-Bit-Software ("native") auf einem 64-Bit-Computer auszuführen, benötigen Sie nur libstdc++6. (Die Links sind für Ubuntu 14.04 Trusty Tahr; ich kann den Link für Ubuntu 10.10 Maverick Meerkat nicht finden.)
Franklin Yu

Genial, obwohl ich dieses Problem in einer anderen Situation getroffen habe, in der ich versuche, Android-Quellcode zu erstellen, hat es das Problem perfekt herausgefunden. Vielen Dank !!! ls
Oscar Zhou1989

15

Ich nehme an, Sie führen Linux auf einem amd64-Computer aus. Der Ordner, in dem sich Ihre ausführbare Datei befindet ( lib32), schlägt eine 32-Bit-ausführbare Datei vor, für die 32-Bit-Bibliotheken erforderlich sind.

Diese scheinen auf Ihrem System nicht vorhanden zu sein, daher müssen Sie sie manuell installieren. Der Paketname hängt von Ihrer Distribution ab, für Debian ia32-libsfür Fedora libstdc++.<version>.i686.


Ich verwende Linux unter Ubuntu 10.10
ammouna

Dann möchten Sie es auf Debian-Weise tun und ia32-libseine 64-Bit-Version der Software installieren oder zu dieser wechseln, die Sie verwenden möchten .
Fabian Knorr

Ich habe dieses Paket installiert, aber ich habe jetzt einen weiteren Fehler "Prozess durch Signal -7 E beendet: Anhängen an PID 3874 fehlgeschlagen: Operation nicht erlaubt"
Ammouna

Sieht so aus, als würden Sie versuchen, einen 64-Bit-Debugger / Monitor an eine 32-Bit-Anwendung anzuschließen oder umgekehrt? Sie sollten wirklich versuchen, 64-Bit-Komponenten abzurufen und ausführbare 64-Bit-Dateien zu erstellen. Dies wird das Leben viel einfacher machen.
Fabian Knorr

1
Wie kann ich das machen ? Ich bin ein Linux-Anfänger und verstehe Sie nicht gut, wie man einen 64-Bit-Debugger / Monitor an eine 32-Bit-Anwendung anschließt. können Sie das bitte erklären
ammouna

9

Für Fedora verwenden:

yum install libstdc++44.i686

Sie können herausfinden, welche Versionen unterstützt werden, indem Sie Folgendes ausführen:

yum list all | grep libstdc | grep i686


7

Für Red Hat:

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

1

/usr/local/cilk/bin/../lib32/pinbin ist dynamisch mit einer Bibliothek libstdc ++. so.6 verknüpft, die nicht mehr vorhanden ist. Sie müssen Cilk neu kompilieren


aber libstdc ++. so.6 existiert im Ordner / usr / lib
ammouna

1
Ja, aber da es sich um eine 32-Bit-Anwendung handelt, ist dies erforderlich /usr/lib32/libstdc++.so.6.
Fabian Knorr
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.