2013-05-30 63 views
2

我想使用交叉編譯的gcc:http://rwiki.sciviews.org/doku.php?id=getting-started:installation:android
我想在Android設備上編譯並在Android設備上執行生成的文件,因此我正在ARM上進行ARM編譯。
我讀過這個交叉編譯的gcc應該可以工作。
我調用編譯器是這樣的:使用Gcc編譯時找不到libmpc.so.2

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(command,environment_variables,files_dir))

編輯:我沒有root權限!
編輯2:我已經做了呼叫的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) 

是否有其他方法來改變庫路徑?

我不知道爲什麼圖書館沒有找到,以及如何解決它。
任何幫助表示讚賞。
在此先感謝。

回答

0

我收到了電子郵件詢問幫助。

恐怕只是您需要將/ data/local/gcc/lib添加到LD_LIBRARY_PATH中。

如果它不能解決問題,請告訴我。我將不得不考慮另一種可能性。你可能需要bash