我根据以下信息与该程序进行了斗争这个问题。现在它已安装完毕,但我不知道如何运行它。一位运行相同版本 Ubuntu 的朋友以相同方式安装后,启动时没有遇到任何问题。
这是我所做的:
$ ./Psychonauts
./Psychonauts: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
因此我继续说道:
$ 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。
好的,我确实设法安装了 apt-file 和 apt-file update。
然而我们又遇到了另一个障碍。
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.
我已经这样做了,当我这样做时它说:
File is up-to-date.
Ignoring source without Contents File:
a link they won't let me post
或者
File is up-to-date.
Downloading Index a link
No Index available.
Downloading complete file a link
当我尝试运行 Psychonauts 时仍然出现同样的错误。
答案1
您收到以下错误消息:
E: Unable to locate package libstdc++.so.6 E: Couldn't find any package by regex 'libstdc++.so.6'
因为您尝试安装一个libstdc++.so.6
无法安装的文件,因为它位于 debian 包中。
您可以使用apt-file
搜索包含该文件的包。要安装它,请输入:
sudo apt-get install apt-file
然后你必须更新索引。
sudo apt-file update
之后,您可以搜索包含该文件的包libstdc++.so.6
:
sudo apt-file find libstdc++.so.6
然后,您会找到很多包含搜索文件的软件包。对于您来说,正确的软件包是libstdc++6
:
libstdc++6: /usr/lib/x86_64-linux-gnu/libstdc++.so.6
然后你可以安装所需的包:
sudo apt-get install libstdc++6
答案2
我认为 Psychonauts 是一款 32 位应用程序。您需要安装:
apt-get install lib32stdc++6
答案3
您几乎已经完成了,只需使用比所需多一些的字符即可:
sudo apt-get install libstdc++6
...应该可以解决问题。
答案4
我将与你分享我的方法。首先,你应该检查你的机器上是否已有此文件的其他副本:
$ locate libstdc++.so.6
输出:
/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
如您所见,/snap/core/...
此文件有许多版本。(如果没有,则此方法不适合您)
您应该从现有文件进行备份:
$ sudo mv /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.backup
然后,您可以将最新的 snap 版本替换到损坏的文件中:
sudo cp /snap/core/6673/usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
尝试再次运行所需的命令。