マルチアーキテクチャをサポートする64ビットシステムでは、32ビット実行可能ファイルを実行できません。

マルチアーキテクチャをサポートする64ビットシステムでは、32ビット実行可能ファイルを実行できません。

Linuxシステム用の32ビット実行可能ファイルをコンパイルしました。ほとんどのLinuxディストリビューションで問題なく実行されます。ただし、Ubuntu 16.04 LTSでNo such file or directory実行しようとするとエラーが発生します。実行可能ファイルは、関連するすべての権限が設定されているディレクトリにあります。

この問題に対する解決策を詳しく説明するいくつかの答えがあります(ここのように)。だから私はこれをしました:

  1. dpkg --print-architecture印刷amd64
  2. dpkg --print-foreign-architectures印刷i386。複数のアーキテクチャがデフォルトで有効になっていても、実行可能ファイルを動作させることはできません。

この実行可能ファイルが機能するには、何をインストール/実行する必要がありますか?

PS:ia32-libsがシステムにインストールされていません。

ベストアンサー1

「該当するファイルやディレクトリはありません」は、ファイルが存在する場合に表示される症状です。ローダーがありません。あなたの場合、64ビットシステムで32ビットバイナリを使用すると動的ローダがありません/lib/ld-linux.so.2

マルチアーキテクチャを有効にすると、64ビットシステムに32ビットパッケージをインストールできます。ただし、実際に32ビット実行可能ファイルを実行するには、実際に32ビットパッケージをインストールする必要があります。少なくともインストールしてみてくださいlibc6:i386;動的ローダーを含むパッケージ。これを実行した後でも、ライブラリの欠落に関するエラーが引き続き発生する可能性があるため、必要な32ビットライブラリパッケージ(libFOO:i386)をインストールしてください。

おすすめ記事