Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1522708
  • 博文数量: 290
  • 博客积分: 3468
  • 博客等级: 中校
  • 技术积分: 3461
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-28 22:21
文章分类

全部博文(290)

文章存档

2016年(13)

2015年(3)

2014年(42)

2013年(67)

2012年(90)

2011年(75)

分类: 嵌入式

2012-07-05 10:46:04

在移植的过程中如果只有某个程序少动态链接库,且库的版本和系统的有冲突,如libc的版本不同等。这个时候直接覆盖系统库代价太大。比较合适的办法是给这个程序单独提供一套动态链接库,然后指定应用程序使用单独提供的这套动态链接库。

下面以 vsftpd 为例
1. # mkdir  -p my_vsftpd/usr/lib //新建三个目录 my_vsftpd my_vsftpd/lib my_vsftpd/usr/lib
2. 把 vsftpd 二进制文件复制到 my_vsftpd,vsftpd 的所有依赖库复制到 my_vsftpd/lib 或下 my_vsftpd/usr/lib
3. 在 vsftpd 目录下 新建名为 runme 的文件,并且加可执行权限,内容如下:
D=$(dirname $0)
$D/lib/ld.so.1 --library-path $D/lib:$D/usr/lib /my_vsftpd/vsftpd $@

备注:此处的/my_vsftpd/vsftpd 为vsftpd 文件存放的绝对路径
4. 把 my_vsftpd 复制到 busybox系统的 / 目录下(根目录)
以下操作均在busybox 系统里面
5. # cd /usr/sbin
6. # ln -sfn /my_vsftpd/runme /usr/sbin/vsftpd
7. # ln -sfn /my_vsftpd/lib /usr/sbin/lib

如果/my_vsftpd/usr/lib 目录下为空则不需要执行下面两步
8. # mkdir usr
9. # ln -sfn /my_vsftpd/usr/lib /usr/sbin/usr/lib
阅读(1169) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~