根文件系统制作的lib库必须添加的文件

在制作根文件系统时,如果busybox是静态编译的,无需添加lib库;动态编译则需添加相应库文件。通过`arm-linux-readelf`可以确定需要哪些库,如ld-linux.so、libc、libm等。为减小文件系统大小,可以选择交叉编译器版本的库或只拷贝必要的库文件。
摘要由CSDN通过智能技术生成

 制作根文件系统时,当把busybox编译的四个文件拷进了文件夹里,

必备的文件目录页建立了,初始化目录,设备文件也建立了

这时候就需要添加库文件了。

这里就有一个值得注意的地方了,如果你的busybox是静态编译的,就是不需要动态链接库的话,就不需要

添加lib库了。

设置静态编译方式

    Busybox Settings ---> Build Options ---> [*] Build BusyBox as a static binary (no shared libs)

busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使他正常工作。

如果是以动态链接的方式就必须添加相应的库文件。

 

#cd /home/su/rootfs/lib

 

这里有点麻烦,我怎么知道需要什么库文件的支持呢?

 

最简单的办法是把arm-linux-gcc 3.4.5下的整个lib库拷进来,简单省事。但是这么做存在一个问题,做出的根文件系统非常大。

 库文件是由上到下兼容的,所以可以使用一起交叉编译器的版本的库,或者是在网上下载,arm-920T-eabi.tgz选取里面的库文件

另一个办法是:

 

#cd /home/su/rootfs/bin

 

#arm-linux-readelf busybox | grep shared

 

这样就可以显示出系统运行起来需要什么库文件,再把相应的库文件拷到/home/su/rootfs/lib下。一般而言,系统库用到两个:动态链接器ld-linux.s

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值