制作根文件系统时,当把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