嵌入式linux的android中,在执行交叉编译的C可执行文件时,出现/system/bin/sh:xxx : No such file or directory或sh:xxx : No such file or directory的错误时,这一般是系统的动态链接器与xxx这个程序中的动态链接器的名字或路径不对(安卓和普通linux的根文件目录不一样)
解决方法一:
使用静态链接库
aarch64-linux-gnu-gcc -o xxx xxx.c -static
即在最后加上-static选项(可行,推荐)
解决方法二:
将所需要的动态链接库复制到/lib目录下(没试过这种方法,但在所需要执行C文件较多的情况下可以试试这种方法)
1、重新挂载文件系统为可读写
mount -o rw,remount /
2、创建/lib目录
mkdir /lib
3、将交叉编译工具链target/lib目录中的ld-linux.so.3、libc.so.6放到lib下