一个关于在android commad line run dynamic binary..的问题。。
这几天我尝试在android 的命令行中运行一个自己的简单程序,比如
int main(void)
{
return 0;
}
编译的时候,如果是在android环境中编译,那么可以正常的在CMD LINE 跑,
但是,如果我不是在android目录下编译,使用的也不是android带的libc.so之类的,
1.如果编译出来的是static的 可执行文件test,那么可以在命令行正常运行。
2.如果编译出来的是dynamic binary test,那么在命令行运行的时候,会提示:
sh: can not find command test 之类的提示,无法运行。
此时,我已经把编译时候使用的libc.so.6 放到 某一下目录,并且在跑 ./test 之前,
已经export LD_LIBRARY_PATH=...path 了。
================================================
MS是,系统中的loader 没有去load library,
我猜,load library 这功能,是否已经移植到android的某一个服务之类的上面了?
必需要启动这个服务什么的,才可以链接动态库?
另外,ldd的时候可以看到(x86下):
ldd test
linux-vdso.so.1 => (0x00007fff6a184000)
libc.so.6 => /lib/libc.so.6 (0x00007f5324524000)
/lib64/ld-linux-x86-64.so.2 (0x00007f53248c3000)
请问,如果我需要在命令行跑一个我的C程序,而且是有动态链接库的,
那么要怎么样才可以实现呢??
说明一下,我之所以要这样做,是我想仅仅是kernel跑起来,而不启动任何关于android的东西(以后可能包括init),然后就可以跑自己的程序。
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
PS。
1.linux kernel 2.6.25
2.android 2.1
3.arm9 core
Did I miss something?
难道不通过JNI就不可以。。。。不可能。。。。。
问题已经解决,
有兴趣的请参考 http://bbs.chinaunix.net/viewthread.php?tid=2313700&extra=
谢谢。