Chinaunix首页 | 论坛 | 博客
  • 博客访问: 188796
  • 博文数量: 24
  • 博客积分: 261
  • 博客等级: 二等列兵
  • 技术积分: 306
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-29 08:25
文章存档

2015年(1)

2014年(1)

2013年(15)

2012年(7)

分类:

2012-10-29 08:34:20

原文地址:arm-linux-gcc 4.3.2探讨2 作者:dyli2000

使用busybox制作文件系统, 编译器: arm-linux-gcc 4.3.2, busybox 1.13.3,  动态编译。怎么知道都需要哪些库?有文章说用:

arm-linux-readelf -d busybox | grep Shared来查看,我输入这个命令,显示:

[root@Lanry bin]# arm-linux-readelf -d busybox |grep Shared

0x00000001 (NEEDED)                     Shared library: [libcrypt.so.1]

0x00000001 (NEEDED)                     Shared library: [libc.so.6]

有点不大象啊。 一是怎么可能只用到两个库, 二是 libcrypt是需要认证的程序才用到,我配置busybox时没有选到什么需要认证的啊。???????????

交叉应用程序的开发需要用到交叉编译的链接库,交叉编译的链接库是在交叉工具链的lib目录下;我们在移植应用程序到我们的目标板的时候,需要把交叉编译的链接库也一起移植到目标板上,这里我们用到的交叉工具链的路径是/usr/local/arm/3.4.1/,所以链接库的目录是/usr/local/arm/3.4.1/lib(本来跟目标板相关的目录是/usr/local/arm/3.4.1/arm-linux, 因此要拷贝的链接库应该在/usr/local/arm/3.4.1/arm-linux/lib下,但是此目录的很多链接都是链接到/usr/local/arm/3.4.1/lib目录下的库文件,所以我们从/usr/local/arm/3.4.1/lib目录拷贝库),此目录下有四种类型的文件。

实际的共享链接库

如:libc-2.3.2.so

主修订版本的符合链接

如:libc.so.2

与版本无关的符合链接(链接到主修订版本的符合链接)

如:libc.so

静态链接库包文件

如:libc.a

以上四种类型的文件,我们只需要两种:实际的共享链接库;主修订版本的符合链接,还有动态连接器及其符号链接。

#进入链接库目录

cd /usr/local/arm/3.4.1/lib

cp $file-*.so /home/rootfs/lib

cp -d $file.so.[*0-9]/jhome /rootfs/lib

cp -d ld*.so*/home /rootfs/lib

#第一个cp命令会复制实际的共享库

#第二个cp命令会复制符合链接本身

#第三个cp命令会复制动态连接器及其符合链接

在做文件系统的时候需要加载器和动态库具体操作:

cd /lib

cp *.so*  /home/rootfs/lib

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