我想使用交叉編譯的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)
是否有其他方法來改變庫路徑?
我不知道爲什麼圖書館沒有找到,以及如何解決它。
任何幫助表示讚賞。
在此先感謝。