我想使用交叉编译的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)
是否有其他方法来改变库路径?
我不知道为什么图书馆没有找到,以及如何解决它。
任何帮助表示赞赏。
在此先感谢。