Chinaunix首页 | 论坛 | 博客
  • 博客访问: 572573
  • 博文数量: 185
  • 博客积分: 4031
  • 博客等级: 上校
  • 技术积分: 1591
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-27 19:45
文章分类

全部博文(185)

文章存档

2011年(14)

2010年(63)

2009年(108)

我的朋友

分类:

2010-03-30 13:33:33

一般的开源程序,有着很完善的configure和make方法。移植到android时,若没有Android.mk,网上常用方法是加-static静态链接,不是很好。我这里介绍一种不改源码或配置的编译运行方法,需要push一些共享库先,伪步骤如下:
  1. adb push ld-linux.so.3 libgcc_s.so.1 libc.so.6 /system/lib
  2. adb shell "ln -s /system/lib /lib ; chmod 777 /lib/ld-linux.so.3"

如上步骤可保证helloworld程序运行。但一般的开源程序会用到更多动态链接库,比如

libpthread, libnss×××, librt, libdl等等,运行时根据错误提示,缺啥装啥,在你的ARM工具链里全都找得到。若还有错,可利用strace命令,利用core文件,不难排查。

由于一些系统分区默认只读,若不便修改,可利用gcc参数--dynamic-linker,利用环境变量$LD_LIBRARY_PATH等手段,重配置动态库路径,也可以达到相同目的。

阅读(1187) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-06-29 21:12:49

你好,请问你说的“若不便修改,可利用gcc参数--dynamic-linker,利用环境变量$LD_LIBRARY_PATH等手段,重配置动态库路径,也可以达到相同目的”是什么意思?怎么操作的?我碰到了这个情况,android的根目录为只读的,无法按照你说的创建/lib等目录,THANKS。yohoro1025@163.com