“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 파일과 apt 파일 업데이트를 설치했다.

그러나 우리는 또 다른 걸림돌을 쳤다.

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를 실행하려고 할 때 여전히 같은 오류가 발생합니다.



답변

오류 메시지가 나타납니다.

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

설치할 libstdc++.so.6수없는 파일을 설치하려고 했기 때문에 데비안 패키지에 들어 있기 때문입니다.

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


답변

Psychonauts는 32 비트 응용 프로그램이라고 생각합니다. 다음을 설치해야합니다.

apt-get install lib32stdc++6


답변

당신은 거의 거기에 있습니다. 필요한 것보다 몇 글자 더 사용했습니다.

sudo apt-get install libstdc++6

… 트릭을해야합니다.


답변

나는 당신을 위해 일한 방식을 당신과 공유 할 것입니다. 우선이 파일의 다른 사본이 이미 시스템에 있는지 확인해야합니다.

$ 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

그런 다음 최신 스냅 버전을 손상된 파일로 바꿀 수 있습니다.

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

원하는 명령을 다시 실행 해보십시오.


답변