2017-03-23 14 views
0

新しいラップトップと最新のアンドロイドNDKに移動し、アンドロイドアプリにバイナリを再コンパイルし、実行中に「実行ファイルが見つかりません」という例外が発生しました。私はファイルが存在することを確認して、予想されるパスにいます。Androidの実行ファイルが間違ったインタプリタで表示されますか?

私は、ファイルを解析して、次のように持ってその後:

$file ./build_pie/my_file 
./build_pie/my_file: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /usr/lib/libc.so.1, not stripped 

その後、私は実行可能ファイルの以前のバージョンをチェックしましたし、それがあった:

$file /tmp/f4_old/my_file 
/tmp/f4_old/my_file: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /system/bin/linker, not stripped 

私は間違っインタプリタがあると信じて理由。どうすれば修正できますか?

PS。ここで

が設定からいくつかの行は、次のとおりです。

... // override PATH and SYSROOT to android NDK (standalone toolchain) 

export CFLAGS="-I$SRC/libftdi1.0-2-android-arm-lollipop/include -I$SRC/libusb1.0-2-android-arm-lollipop/include -fPIE" 
export CPPLAGS="$CPPFLAGS -fPIE" 
export CXXLAGS="$CXXFLAGS -fPIE" 
export LDFLAGS="$LDFLAGS -lusb-1.0 -lusb -lftdi -L$SRC/libftdi1.0-2-android-arm-lollipop/lib -L$SRC/libusb1.0-2-android-arm-lollipop/lib -L$SRC/libusb-android-arm-lollipop/lib -static -fPIE -pie" 

../configure --build=x86-unknown-linux-gnu --host=arm-linux-androideabi --target=arm-linux-androideabi --verbose 

答えて

1

私は-Wl,--dynamic-linker=/system/bin/linkerで動的リンカを指定する必要がありました(LDFLAGSに追加)

-1

あなたの答えに基づいて、組み立てのすべての努力を行ってきましたautoconfで使用するためのクロスコンパイラです。あなたはこの種の間違いからあなたを救うためにNDKが運ぶツールstandalone toolchainsを見てください。

+0

これはまさに私が使ったものです。 – 4ntoine

+0

ああ、大丈夫です。あなたの質問からそれを推測する方法はありませんでした。スタンドアロンのツールチェーンを使用する場合は、リンカーパスを手動で指定する必要はありません。構築しているプロジェクトが間違った経路に明示的に設定している可能性がありますか? autoconfやmakefileのどこか?あなたはそれの周りで働いたので多分あなたは気にしません。あなたが実際のバグを乗り越えていないことを確認しようとしているだけです。 –

関連する問題