我刚建立了我的金鱼安卓内核。我写了一个hello world程序并使用arm-linux-gnueabi-gcc编译。我使用adb push将可执行文件放在模拟内核的/ data / local中。我能够使用adb shell ssh到模拟内核。当我进入/ data / local和ls目录时,我能够看到使用adb push输入的a.out。当我做#。/ a.out时,我收到错误./a.out:not found。
有人可以帮我解决这个问题。
答案 0 :(得分:0)
我在编译期间添加了-static选项。 arm-linux-gnueabi-gcc -static
答案 1 :(得分:0)
我猜这是一个缺少库的问题。我以前遇到过这个问题,我的修复方法如下:
root@evab:~# ./a.out
-sh: ./a.out: not found
root@evab:~# ls /lib /root
/lib:
libc.so.6
/root:
a.out
root@evab:~#
然后检查应用程序需要哪个共享库:
leo@leo-VirtualBox:/opt/nfs/root$ arm-linux-readelf a.out -a |grep lib
[Requesting program interpreter: /lib/ld-linux.so.3]
0x00000001 (NEEDED) Shared library: [libc.so.6]
... ...
通过输出,我们可以确认缺少ld-linux.so.3
,因此将ld-linux.so.3
复制到目标文件系统/ lib目录:
root@evab:~# ./a.out
test
root@evab:~# ls /lib /root
/lib:
ld-linux.so.3 libc.so.6
/root:
a.out
root@evab:~#