一个关于在android commad line run dynamic binary..的问题。。

发布于 2022-10-15 07:56:42 字数 1165 浏览 40 评论 0

这几天我尝试在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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

江湖彼岸 2022-10-22 07:56:42

PS。
1.linux kernel 2.6.25
2.android 2.1
3.arm9 core

Did I miss something?

不回头走下去 2022-10-22 07:56:42

难道不通过JNI就不可以。。。。不可能。。。。。

南街九尾狐 2022-10-22 07:56:42

问题已经解决,
有兴趣的请参考 http://bbs.chinaunix.net/viewthread.php?tid=2313700&extra=

谢谢。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文