libstdc ++. so.6: impossibile aprire il file oggetto condiviso: nessun file o directory di questo tipo


92

Voglio eseguire il comando Cilkscreen con un programma cilk ++ ma ho ricevuto questo errore

/usr/local/cilk/bin/../lib32/pinbin: errore durante il caricamento delle librerie condivise: libstdc ++. so.6: impossibile aprire il file oggetto condiviso: nessun file o directory di questo tipo

Mi potete aiutare per favore

Risposte:


221

Prova questo:

apt-get install lib32stdc++6

6
Questo è molto meglio che installare ia32-libs (come proposto da trion). In questo modo, ho dovuto installare 1 o 2 altre dipendenze mentre ia32-libs ha 241 dipendenze per un totale di 267 MB di spazio su disco aggiuntivo.
Mike

1
Funziona anche per eseguire le appliance virtuali di Microsoft Windows per testare il programma autoestraente. Grazie!
Charles Engelke

4
@takeit Per una macchina a 64 bit, dovremmo lib64stdc++6invece installare ?
boddhisattva

@boddhisattva penso lib32stdc++6sia per macchine a 64 bit con software a 32 bit. Qualcosa di simile al "livello di compatibilità". Per eseguire il software a 64 bit ("nativo") su una macchina a 64 bit è sufficiente libstdc++6. (I collegamenti sono per Ubuntu 14.04 Trusty Tahr; Non riesco a trovare il collegamento per Ubuntu 10.10 Maverick Meerkat.)
Franklin Yu

Fantastico, anche se ho incontrato questo problema in una situazione diversa in cui provo a creare il codice sorgente Android, ha capito perfettamente il problema. Grazie mille !!! ls
oscarzhou

15

Presumo che tu stia eseguendo Linux su una macchina amd64. La cartella in cui risiede il tuo eseguibile ( lib32) suggerisce un eseguibile a 32 bit che richiede librerie a 32 bit.

Questi sembrano non essere presenti sul tuo sistema, quindi devi installarli manualmente. Il nome del pacchetto dipende dalla tua distribuzione, per Debian è ia32-libs, per Fedora libstdc++.<version>.i686.


Sto eseguendo Linux su Ubuntu 10.10
ammouna

Quindi vuoi farlo alla maniera Debian e installare ia32-libso passare a una versione a 64 bit del software che stai cercando di usare.
Fabian Knorr

Mi è stato installato questo pacchetto ma ora ho un altro errore "processo interrotto dal segnale -7 E: collegamento a pid 3874 non riuscito: operazione non consentita"
ammouna

Sembra che tu stia cercando di collegare un debugger / monitor a 64 bit a un'applicazione a 32 bit o viceversa? Dovresti davvero provare a ottenere componenti a 64 bit e creare eseguibili a 64 bit; questo renderà la vita molto più facile.
Fabian Knorr

1
Come posso fare questo ? Sono un principiante di Linux e non ti capisco bene come collegare un debugger / monitor a 64 bit a un'applicazione a 32 bit ov / s. puoi spiegarlo per favore
ammouna

9

Per Fedora usa:

yum install libstdc++44.i686

Puoi scoprire quali versioni sono supportate eseguendo:

yum list all | grep libstdc | grep i686


7

Per Red Hat:

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

1

/usr/local/cilk/bin/../lib32/pinbin è collegato dinamicamente a una libreria libstdc ++. so.6 che non è più presente. Devi ricompilare Cilk


ma libstdc ++. so.6 esiste nella cartella / usr / lib
ammouna

1
Sì, ma poiché è un'applicazione a 32 bit, richiede /usr/lib32/libstdc++.so.6.
Fabian Knorr
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.