「libstdc ++。so.6:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません」


10

この質問の情報に基づいて、私はプログラムに取り組んだ。インストールされましたが、実行方法がわかりません。同じバージョンの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
sudo apt-get install libstdc++6
3ventic 2014年

回答:


20

次のエラーメッセージが表示されます。

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

さて、私はなんとかapt-fileとapt-file updateをインストールしました。しかし、その後、別の障害が発生しました。usagiyojimbo @ Usagi:〜$ sudo apt-file find libstdc ++。so.6 [sudo] password for usagiyojimbo:E:キャッシュが空です。最初に「apt-file update」を実行する必要があります。
うさぎよもんぼ14

実行しsudo apt-file update、その後sudo apt-file find libstdc++.so.6。上記の答えを正確に読んでください。
BuZZ-dEE、2014

2
私が別の方法で何をしたかはわかりませんが、今回はapt-file findが機能しました。パッケージのリストを取得します。インストールしようとすると、libstdc ++ 6がすでに最新バージョンであると表示されます。./Psychonautsを実行しようとすると、そのようなファイルやディレクトリはまだ表示されません。
うさぎようじんぼ14

そして、32ビットハードウェアを
いじくり回している場合


3

あと少しで、必要以上に数文字使用しました。

sudo apt-get install libstdc++6

...トリックを行う必要があります。


0

私がうまくいった方法をあなたと共有します。最初に、このファイルの他のコピーがすでにマシン上にあるかどうかを確認する必要があります。

$ 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

目的のコマンドをもう一度実行してみてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.