Libstdc ++. So.6: không thể mở tệp đối tượng dùng chung: Không có tệp hoặc thư mục như vậy


10

Tôi quằn quại với chương trình theo thông tin trong câu hỏi này . Bây giờ nó đã được cài đặt nhưng tôi không thể tìm ra cách chạy nó. Một người bạn chạy cùng một phiên bản Ubuntu không gặp vấn đề gì khi khởi động nó sau khi cài đặt nó theo cùng một cách.

Đây là những gì tôi đã làm:

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

Vì vậy, tôi đã đi trước và:

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

Cần lưu ý rằng tôi chỉ bắt đầu sử dụng Linux một vài ngày trước.

Được rồi, vì vậy tôi đã quản lý để cài đặt apt-file và apt-file update.

Tuy nhiên sau đó chúng tôi đã gặp một trở ngại khác.

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.

Tôi đã làm điều đó, khi tôi làm nó nói:

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

Hoặc là

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

Tôi vẫn nhận được lỗi tương tự khi tôi cố gắng chạy các phi hành gia.


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

Câu trả lời:


20

Bạn nhận được thông báo lỗi:

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

bởi vì bạn đã cố cài đặt một tệp libstdc++.so.6mà bạn không thể cài đặt, vì nó nằm trong gói debian.

Bạn có thể sử dụng apt-fileđể tìm kiếm gói chứa tệp đó. Để cài đặt nó, gõ:

sudo apt-get install apt-file

Sau đó, bạn phải cập nhật chỉ mục.

sudo apt-file update

Sau đó, bạn có thể tìm kiếm gói chứa tệp libstdc++.so.6:

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

Sau đó, bạn tìm thấy rất nhiều gói có chứa các tập tin tìm kiếm. Trong trường hợp của bạn, gói chính xác là libstdc++6:

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

Sau đó, bạn có thể cài đặt gói cần thiết:

sudo apt-get install libstdc++6

Được rồi, vì vậy tôi đã quản lý để cài đặt apt-file và apt-file update. Tuy nhiên sau đó chúng tôi đã gặp một trở ngại khác. usagiyojimbo @ Usagi: ~ $ sudo apt-file find libstdc ++. so.6 [sudo] mật khẩu cho usagiyojimbo: E: Bộ đệm trống. Bạn cần chạy 'cập nhật tệp apt' trước.
UsagiYojimbo

Chạy sudo apt-file updatevà sau đó sudo apt-file find libstdc++.so.6. Đọc câu trả lời trên chính xác.
BuZZ-dEE

2
Không chắc chắn những gì tôi đã làm khác nhau, nhưng tìm thấy apt-file làm việc lần này. Tôi nhận được danh sách các gói. Khi tôi cố gắng cài đặt, nó nói libstdc ++ 6 đã là phiên bản mới nhất. Khi tôi cố gắng ./Pologistsonauts vẫn nói không có tệp hoặc thư mục như vậy.
UsagiYojimbo

Và nếu bạn đang rối tung xung quanh với phần cứng 32-bit, hãy chắc chắn để xác định ở cuối: sudo apt-get install libstdc ++ 6: i386
Ezekiel Kruglick

9

Tôi nghĩ rằng phi hành gia là một ứng dụng 32 bit. Bạn sẽ cần phải cài đặt:

apt-get install lib32stdc++6

Điều đó đúng với tôi
Damián Rafael Lattenero

3

Bạn gần như ở đó, chỉ cần sử dụng thêm một vài ký tự bạn cần:

sudo apt-get install libstdc++6

... nên thực hiện các mẹo.


0

Tôi sẽ chia sẻ với bạn cách làm việc cho tôi. Trước hết bạn nên tìm xem có bản sao nào khác của tệp này đã có trên máy của bạn không:

$ locate libstdc++.so.6

đầu ra:

/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

Như bạn có thể thấy có nhiều /snap/core/...phiên bản của tập tin này. (nếu không phương pháp này không phù hợp với bạn)

Bạn nên tạo một bản sao lưu từ tệp hiện có:

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

Sau đó, bạn có thể thay thế phiên bản snap mới nhất vào tệp bị hỏng:

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

Thử chạy lệnh mong muốn một lần nữa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.