Chinaunix首页 | 论坛 | 博客
  • 博客访问: 24324
  • 博文数量: 9
  • 博客积分: 370
  • 博客等级: 一等列兵
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-21 17:26
文章分类
文章存档

2011年(1)

2010年(8)

我的朋友
最近访客

分类: LINUX

2010-03-10 13:49:50

一般的开源程序,有着很完善的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等手段,重配置动态库路径,也可以达到相同目的。

 

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