Hello World Android计划

时间:2012-01-31 16:44:23

标签: android android-emulator

我刚建立了我的金鱼安卓内核。我写了一个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。

有人可以帮我解决这个问题。

2 个答案:

答案 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:~#