2017-01-13 53 views
0

私はOnePus 3T(LogoInjector)用のCバイナリを作成しています。これはsnapdragon 821を使用しているため、arm64デバイスです。アンドロイドは実行できません:64ビットELFファイル

私が実行します。

android-ndk-r13b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc -I android-ndk-r13b/platforms/android-24/arch-arm64/usr/include -c LogoInjector.v1.4.c lodepng 

と自分の携帯電話上でコンパイルされたバイナリに/システム/ binにコピーし、私はこのエラーを取得する:

sush: /system/bin/LogoInjector: not executable: 64-bit ELF file 

私も32ビットツールチェーンを試みたが、それ私に与える:

sush: /system/bin/LogoInjector: not executable: 32-bit ELF file 

私はバイナリの許可を/ system/binの他のすべてと同様に755に設定しました。

誰でもこの問題を解決する手助けはできますか?

ありがとうございます!

答えて

1

-cスイッチは、コンパイルのみの手順を実行し、リンクステージをスキップし、オブジェクトファイルを生成し、実行可能ではないことをコンパイラに指示しています。代わりに

aarch64-linux-android-gcc -I android-ndk-r13b/platforms/android-24/arch-arm64/usr/include LogoInjector.v1.4.c -o lodepng 

コマンドを呼び出します。これらのパラメータに加えて、リンカオプション(リンクするライブラリなど)を指定する必要がある可能性があります。

関連する問題