“Libstdc ++. So.6: paylaşılan nesne dosyasını açamıyor: Böyle bir dosya veya dizin yok”


10

Ben de bilgisine göre programla wrastled bu soruya . Şimdi yüklü ama nasıl çalıştırılacağını anlayamıyorum. Aynı Ubuntu sürümünü çalıştıran bir arkadaşın, aynı şekilde yükledikten sonra başlamasını sağlamakta sorun yaşamadım.

Ben de bunu yaptım:

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

Bu yüzden devam ettim ve:

$ 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'

Linux'u sadece birkaç gün önce kullanmaya başladığım unutulmamalıdır.

Tamam, apt dosyası ve apt dosyası güncellemesi yüklemeyi başardım.

Ancak daha sonra başka bir engelle karşılaştık.

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.

Bunu yaptım, bunu yaptığımda şöyle diyor:

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

Veya

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

Psychonauts'u çalıştırmaya çalıştığımda hala aynı hatayı alıyorum.


1
sudo apt-get install libstdc++6
3ventic

Yanıtlar:


20

Hata mesajını alıyorsunuz:

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

çünkü yükleyemediğiniz bir dosyayı yüklemeye çalıştınız libstdc++.so.6, çünkü bir debian paketinde bulunuyor.

Bu apt-filedosyayı içeren paketi aramak için kullanabilirsiniz . Yüklemek için şunu yazın:

sudo apt-get install apt-file

Ardından dizini güncellemeniz gerekir.

sudo apt-file update

Bundan sonra, dosyayı içeren paketi arayabilirsiniz libstdc++.so.6:

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

Sonra aranan dosyayı içeren bir çok paket bulacaksınız. Sizin durumunuzda, doğru paket libstdc++6:

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

Sonra gerekli paketi yükleyebilirsiniz:

sudo apt-get install libstdc++6

Tamam, apt dosyası ve apt dosyası güncellemesi yüklemeyi başardım. Ancak daha sonra başka bir engelle karşılaştık. usagiyojimbo @ Usagi: ~ $ sudo apt-file libstdc bul + ++. so.6 usagiyojimbo için şifre [E] şifre: E: Önbellek boş. Önce 'apt-file update' komutunu çalıştırmalısınız.
UsagiYojimbo

Koş sudo apt-file updateve sonra sudo apt-file find libstdc++.so.6. Yukarıdaki cevabı tam olarak okuyun.
BuZZ-dEE

2
Farklı yaptığımdan emin değilim, ama apt-file find bu sefer çalıştı. Paketlerin listesini alıyorum. Yüklemeye çalıştığımda libstdc ++ 6 zaten en yeni sürüm. ./Psychonauts yapmaya çalıştığımda hala böyle bir dosya veya dizin yok diyor.
UsagiYojimbo

Ve 32 bit donanımla uğraşıyorsanız, sonunda belirttiğinizden emin olun: sudo apt-get install libstdc ++ 6: i386
Ezekiel Kruglick


3

Neredeyse oradasınız, sadece ihtiyacınız olandan birkaç karakter daha kullandınız:

sudo apt-get install libstdc++6

... hile yapmalı.


0

Sizin için işe yarayan yöntemi sizinle paylaşacağım. Her şeyden önce, bu dosyanın başka bir kopyasının zaten makinenizde olup olmadığını bulmalısınız:

$ locate libstdc++.so.6

çıktı:

/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

Gördüğünüz gibi /snap/core/...bu dosyanın birçok sürümü var . (bu yöntem sizin için uygun değilse)

Mevcut dosyadan bir yedek almalısınız:

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

Ardından, en son ek sürümü bozuk dosyaya değiştirebilirsiniz:

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

İstediğiniz komutu tekrar çalıştırmayı deneyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.