GUIとコマンドラインでバイナリを実行する際に問題があります。 Ubuntu 17.10を実行しています。ログは次のとおりです。
julien@julien-PC:~/JEUX/ROMS/Logiciels/snes9x-1.53$ ls
data docs snes9x-gtk
julien@julien-PC:~/JEUX/ROMS/Logiciels/snes9x-1.53$ ./snes9x-gtk
bash: ./snes9x-gtk: Aucun fichier ou dossier de ce type
PS:最後の行はフランス語ですが、「このタイプのファイルやディレクトリはありません」を意味します。
Humble BundleからダウンロードしたSuper Meat Boyインストーラでもこの問題が発生しました。
修正する:
を使用してfile
以下を行いました。
julien@julien-PC:~/JEUX/ROMS/Logiciels/snes9x-1.53$ file ./snes9x-gtk
./snes9x-gtk: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.9, not stripped
/lib/ld-linux.so.2 ./snes9x-gtk
(通訳だから)コマンドを試してみましたが見つかりませんでした。インターネット上でいくつかの調査をした後、パッケージで見つけてインストールした後、lib32z1
コマンドを再試行するとerror while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory
。私の
コマンドを出力として使用する:ldd
julien@julien-PC:~/JEUX/ROMS/Logiciels/snes9x-1.53$ ldd ./snes9x-gtk
linux-gate.so.1 => (0xf7f82000)
libX11.so.6 => not found
libdl.so.2 => /lib32/libdl.so.2 (0xf7f5b000)
libXext.so.6 => not found
libGL.so.1 => not found
[...]
libm.so.6 => /lib32/libm.so.6 (0xf7e54000)
libgcc_s.so.1 => not found
libc.so.6 => /lib32/libc.so.6 (0xf7c81000)
/lib/ld-linux.so.2 (0xf7f84000)
欠落している依存関係がたくさんあります...
libX11とlibXextを修正しようとしましたが、問題が発生しました。
libX11がパッケージにあると仮定しましたが、インストールしようlibx11-6
とするとすでにインストールされているとします。 libXextはpackageと同じですlibxext-6
。
おすすめメニューとは何ですか?ありがとうございます。
答え1
これは32ビットバイナリです。 Ubuntuシステムで実行するには:i386
パッケージをインストールする必要があります。スキーマi386
はすでに有効になっている必要がありますが、準備をして次のように実行してください。
sudo dpkg --add-architecture i386
sudo apt update
その後、不足しているライブラリをインストールし、例えば
sudo apt install libx11-6:i386 zlib1g:i386
待つ。必要なライブラリーを含むパッケージを見つけるには、以下をインストールしますapt-file
。
sudo apt install apt-file
sudo apt-file update
apt-file search libX11.so.6
答え2
まず、ファイルが何であるかを確認します。
file ./snes9x-gtk
そしてシステムに適したタイプであることを確認してください。たとえば、32ビットシステムを使用している場合、もちろん次のことは実行されません。
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked...
タイプが正しい場合を使用して調査してくださいldd
。これは私がポップアップできたいくつかのエラーです。
$ ldd /usr/local/bin/tesseract
/usr/local/bin/tesseract: /usr/lib64/libstdc++.so.6:
version `GLIBCXX_3.4.11' not found
(required by /usr/local/lib/libtesseract_viewer.so.3)
$ ldd /usr/local/bin/qemu-system-x86_64
...
libSDL-1.2.so.0 => not found
...
この場合、欠落しているライブラリ(この例ではSDLなど)をインストールするか、最新バージョンのプログラムをインポートする必要があります。または、ソースからシステムに再コンパイルします。
修正する:SNES ROMを実行したいと思いますか? SuperNintendo以外のシステムではこれを行うことはできません。あなたが必要ですエミュレータROMのフォーマットを教えてくれます。可能であれば見てください。ここ。