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.