"Libstdc ++. So.6: tidak dapat membuka file objek bersama: Tidak ada file atau direktori seperti itu"

10

Saya bergumul dengan program ini sesuai dengan info dalam pertanyaan ini . Sekarang sudah terinstal tapi saya tidak tahu cara menjalankannya. Seorang teman yang menjalankan versi Ubuntu yang sama tidak memiliki masalah untuk memulainya setelah menginstalnya dengan cara yang sama.

Inilah yang telah saya lakukan:

$ ./Psychonauts
./Psychonauts: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

Jadi saya pergi ke depan dan:

$ sudo apt-get install libstdc++.so.6
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libstdc++.so.6
E: Couldn't find any package by regex 'libstdc++.so.6'

Perlu dicatat bahwa saya baru mulai menggunakan Linux beberapa hari yang lalu.

Oke, jadi saya berhasil menginstal pembaruan file-apt dan file-apt.

Namun kemudian kami menemukan hambatan lain.

usagiyojimbo@Usagi:~$ sudo apt-file find libstdc++.so.6
[sudo] password for usagiyojimbo: 
E: The cache is empty. You need to run 'apt-file update' first.

Saya telah melakukan itu, ketika saya mengatakan:

File is up-to-date.
Ignoring source without Contents File:
a link they won't let me post

Atau

File is up-to-date.
Downloading Index a link
No Index available.
Downloading complete file a link

Saya masih mendapatkan kesalahan yang sama ketika saya mencoba menjalankan Psychonauts.

UsagiYojimbo
sumber
1
sudo apt-get install libstdc++6
3ventic
kemungkinan duplikat "Tidak dapat menemukan paket" untuk semua paket
BuZZ-dEE

Jawaban:

20

Anda mendapatkan pesan kesalahan:

E: Unable to locate package libstdc++.so.6
E: Couldn't find any package by regex 'libstdc++.so.6'

karena Anda mencoba menginstal file libstdc++.so.6yang tidak dapat Anda instal, karena terletak di paket debian.

Anda dapat menggunakan apt-fileuntuk mencari paket yang berisi file itu. Untuk menginstalnya, ketik:

sudo apt-get install apt-file

Maka Anda harus memperbarui indeks.

sudo apt-file update

Setelah itu, Anda dapat mencari paket yang berisi file libstdc++.so.6:

sudo apt-file find libstdc++.so.6

Kemudian Anda menemukan banyak paket yang berisi file yang dicari. Dalam kasus Anda, paket yang benar adalah libstdc++6:

libstdc++6: /usr/lib/x86_64-linux-gnu/libstdc++.so.6

Kemudian Anda dapat menginstal paket yang dibutuhkan:

sudo apt-get install libstdc++6
BuZZ-dEE
sumber
Oke, jadi saya berhasil menginstal pembaruan file-apt dan file-apt. Namun kemudian kami menemukan hambatan lain. usagiyojimbo @ Usagi: ~ $ sudo apt-file find libstdc ++. so.6 [sudo] kata sandi untuk usagiyojimbo: E: Cache kosong. Anda harus menjalankan 'pembaruan file-apt' terlebih dahulu.
UsagiYojimbo
Jalankan sudo apt-file updatedan setelah itu sudo apt-file find libstdc++.so.6. Baca jawaban di atas dengan tepat.
BuZZ-dEE
2
Tidak yakin apa yang saya lakukan berbeda, tetapi ternyata apt-file find berhasil kali ini. Saya mendapatkan daftar paket. Ketika saya mencoba menginstalnya mengatakan libstdc ++ 6 sudah merupakan versi terbaru. Ketika saya mencoba ./Psychonauts masih mengatakan tidak ada file atau direktori tersebut.
UsagiYojimbo
Dan jika Anda bermain-main dengan perangkat keras 32-bit, pastikan untuk menentukan di bagian akhir: sudo apt-get install libstdc ++ 6: i386
Yehezkiel Kruglick
9

Saya pikir Psychonauts adalah aplikasi 32bit. Anda harus menginstal:

apt-get install lib32stdc++6
jhilmer
sumber
Itu benar bagi saya
Damián Rafael Lattenero
3

Anda hampir sampai, hanya menggunakan beberapa karakter lebih dari yang Anda butuhkan:

sudo apt-get install libstdc++6

... harus melakukan trik.

Braiam
sumber
0

Saya akan berbagi dengan Anda cara kerjanya. Pertama-tama Anda harus menemukan apakah ada salinan lain dari file ini di komputer Anda:

$ locate libstdc++.so.6

hasil:

/snap/core/6405/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core/6405/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
/snap/core/6405/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21-gdb.py
/snap/core/6531/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core/6531/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
/snap/core/6531/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21-gdb.py
/snap/core/6673/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core/6673/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
/snap/core/6673/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21-gdb.py
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25
/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25-gdb.py

Seperti yang Anda lihat ada banyak /snap/core/...versi file ini. (jika tidak, metode ini tidak cocok untuk Anda)

Anda harus membuat cadangan dari file yang ada:

$ sudo mv /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.backup

Kemudian Anda dapat mengganti versi snap terbaru ke file yang rusak:

sudo cp /snap/core/6673/usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

Coba jalankan perintah yang diinginkan lagi.

Saeed Falsafin
sumber