Ubuntu 17.10でバイナリを実行できません

Ubuntu 17.10でバイナリを実行できません

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のフォーマットを教えてくれます。可能であれば見てください。ここ

関連情報