64ビットLinux(ubuntu 14.04)で32ビットバイナリをコンパイルすると、無効なELFクラスエラー「BAD ELF class:ELFCLASS64」が発生します。

64ビットLinux(ubuntu 14.04)で32ビットバイナリをコンパイルすると、無効なELFクラスエラー「BAD ELF class:ELFCLASS64」が発生します。

私のシステムには64ビットUbuntu 16.04がインストールされています。何らかの理由で、ルートディレクトリをコンパイル操作に必要な必要なライブラリがインストールされている他のシステムのコピーにすぎないディレクトリに変更する必要がありました。

私はchrootを使ってディレクトリをrootに設定しました。これで、ファイルをコンパイルする必要があるAndroid用の32ビットバイナリをコンパイルするとlibc++.soエラーが発生します。

error while loading shared libraries: libc++.so: wrong ELF class: ELFCLASS64

.so ファイルのファイル出力:

$file /cpa/android/sdk/build-tools/23.0.3/aapt

/cpa/android/sdk/build-tools/23.0.3/aapt: ELF 32-bit LSB  shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=cfb63b4ad11d0c2d59f10329f0116706e99bf72e, not stripped

Android バイナリをコンパイルします。

ベストアンサー1

おすすめ記事