«Libstdc ++. So.6: невозможно открыть общий объектный файл: такого файла или каталога нет»

Я изучал программу в соответствии с информацией в этого вопроса . Сейчас он установлен, но я не могу понять, как его запустить. Друг, использующий ту же версию 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.

Однако тогда мы попали в другую загадку.

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.

9
задан 13 April 2017 в 15:24

5 ответов

Вы получаете сообщение об ошибке:

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
0
ответ дан 13 April 2017 в 15:24

Я думаю, что Psychonauts - это 32-битное приложение. Вам нужно будет установить:

apt-get install lib32stdc++6
0
ответ дан 13 April 2017 в 15:24

Вы почти у цели, просто использовали на несколько персонажей больше, чем нужно:

sudo apt-get install libstdc++6

... должны справиться с задачей.

0
ответ дан 13 April 2017 в 15:24

Я поделюсь с вами тем, как это сработало для меня. Прежде всего вы должны найти, если какая-либо другая копия этого файла уже находится на вашем компьютере:

$ 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

Попробуйте снова запустить нужную команду.

0
ответ дан 13 April 2017 в 15:24

Я смог исправить это с помощью моего друга.

Поскольку бинарный файл был 32-битным, мы могли исправить это с помощью следующей команды:

sudo apt-get install libstdc++5:i386
0
ответ дан 3 June 2020 в 14:43

Другие вопросы по тегам:

Похожие вопросы: