繁体   English   中英

Hello World Android程序

[英]Hello World Android Program

我刚刚构建了我的goldfish android内核。 我编写了一个hello world程序,并使用arm-linux-gnueabi-gcc进行了编译。 我使用adb push将可执行文件放入仿真内核的/ data / local中。 我能够使用adb shell SSH进入仿真内核。 当我进入/ data / local并进入目录时,我可以看到使用adb push放置的a.out。 当我执行#。/ a.out时,出现错误./a.out:找不到。

有人可以帮我这个忙吗?

我想这是一个缺少的图书馆问题。 我之前遇到过此问题,修复方法如下:

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

我在编译工作期间添加了-static选项。 arm-linux-gnueabi-gcc -static

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM