2

http://rwiki.sciviews.org/doku.php?id=getting-started:installation:androidからクロスコンパイルされた gcc を使用したい。
Android デバイスでコンパイルし、結果のファイルを Android デバイスで実行したいので、ARM for ARM でコンパイルしています。
このクロスコンパイルされた gcc は動作するはずだと読みました。
次のようにコンパイラを呼び出しています。

gcc_dir/bin/arm-elf-linux-androideabi-gcc -Lgcc_dir/lib -Igcc_dir/include test.c  

しかし、私はエラーが発生しています:

WARNING: generic atexit() called from legacy shared library
soinfo_link_image(linker.cpp:1635): could not load library "libmpc.so.2" needed by "/package.appName/files/gcc/bin/../libexec
/gcc/arm-elf-linux-androideabi/4.6.0/cc1";  
caused by load_library(linker.cpp:745): 
library "libmpc.so.2" not foundCANNOT LINK EXECUTABLE  

私は Android で実行しているので、「エクスポート」を使用して LD_LIBRARY_PATH をエクスポートすることはできません。
この問題を解決しようとしたこと:
1. -Lgcc_dir/lib で
ライブラリ パスを追加 2. -Wl,-rpath,gcc_dir/lib でライブラリ パスを
追加 3. 実行時に環境変数に LD_LIBRARY_PATH を追加 (Runtime.getRuntime( .exec(コマンド、環境変数、ファイル_ディレクトリ))

編集:ルート権限がありません!
編集 2: Call の strace を作成しましたが、gcc は間違ったパスでファイルを検索しています:

6535 stat64("/vendor/lib/libmpc.so.2", 0xbeffefd0) = -1 ENOENT (No such file or directory)
6535 stat64("/system/lib/libmpc.so.2", 0xbeffefd0) = -1 ENOENT (No such file or directory)
6535 stat64("/vendor/lib/libmpc.so.2", 0xbeffefd0) = -1 ENOENT (No such file or directory)
6535 stat64("/system/lib/libmpc.so.2", 0xbeffefd0) = -1 ENOENT (No such file or directory)

Lib Path を変更する他の方法はありますか?

ライブラリが見つからない理由と修正方法がわかりません。
任意のヘルプをいただければ幸いです。
前もって感謝します。

4

1 に答える 1