一步一步制作yaffs/yaffs2根文件系统(三)---使用glibc库构造 /lib

转载 2015年11月20日 21:47:39

                            开发环境:Ubuntu 12.04

                            开发板:mini2440  256M NandFlash   64M SDRAM

                            glibc库:点此下载

                             交叉编译器:arm-linux-gcc 4.4.3 点此可下载

                             BusyBox版本:busybox-1.13.3  点此可下载

                            yaffs制作工具:mkyaffsimage

                            yaffs2制作工具:mkyaffs2image(适合64M)、mkyaffs2image-128(适合128M以上)

紧接着上一节:http://blog.csdn.net/mybelief321/article/details/10001927

在我们制作交叉编译工具链arm-linux-gcc时,已经生成了glibc库,可以直接使用它来构建根文件系统,本文使用的时光盘里自带的压缩库,由下图可以看出,这是arm-linux-gcc3.4.5版本的glibc库,而我的arm-linux-gcc是4.4.3的,可不可以使用呢?答案是可以的!(补充,其实不可以的,所用的动态链接库必须和你PC机的交叉编译工具的动态链接库,所以我这里必须要用arm-linux-gcc的动态库。但是,我并没有修改这个错误,而是将错就错,所以建议你什么都不要变,还是按照这篇文章的步骤做下去,我本系列最后一个文章是针对出现的这个错误纠错的,相信你一结合,会明白不少的!

15、将下载的arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 放在和rootfs同一个文件夹,如下


16、执行命令:tar -jxf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 解压此库


我们需要的glibc库的位置存放在gcc-3.4.5-glibc-2.3.6/arm-linux/lib 文件夹下。

执行命令:ls gcc-3.4.5-glibc-2.3.6/arm-linux/lib 可以看到该目录下的文件。其实这个目录下的文件并非都属于glibc库,比如crt1.o、libstdc++.a等文件是gcc工具本身生成的。里面的目录、文件可以分为8类。

    ①  加载器ld-2.3.6.so、ld-linux.so.2。

    动态程序启动前,它们都被用来加载动态库。

    ②  目标文件(.o)。

    比如crt1.o、crti.o、crtn.o、Mctr1.o、Scrt1.o等,在生成应用程序时,这些文件像一般的目标文件一样被链接。

    ③  静态库文件(.a)。

    比如静态数学库libm.a、静态c++库libstdc++.a等,编译静态程序时会连接它们

    ④  动态库文件(.so、,so.[0-9]*)。

    比如动态数学库libm.so、动态c++库libstdc++.so等,它们可能是一个链接文件。编译动态库时会用到这些文件,但是不会连接它们,运行时才连接。

    ⑤  libtool库文件(.la)。

    在连接库文件时,这些文件会被用到,比如它们列出了当前库文件所依赖的其他库文件。程序运行时无需这些文件。

    ⑥  gconv目录。

    里面是有头字符的集的动态库,比如ISO8859-1.so、GB18010.so等。

    ⑦  ldscripts目录。

   里面是各种连接脚本,在编译应用程序时,它们被用于制定程序的运行地址、各段的位置等。

    ⑧  其他目录及文件。

17、现在安装glibc库,在上一节我们编译安装busybox时使用的是动态连接,这里在开发板上只需要加载器和动态库。

执行命令:mkdir -p rootfs/lib  在rootfs中创建lib文件夹,用来存放咱们的加载器和动态库

执行命令:cp gcc-3.4.5-glibc-2.3.6/arm-linux/lib/*.so* rootfs/lib/  安装glibc库到咱们的文件夹下


18、执行命令:cd rootfs  进入到rootfs文件夹,此时可以看到在lib文件夹已经有咱们需要的库了。


至此,glibc库已经安装完成,也已经在根文件目录下创建了/lib目录。其实,上面复制的库文件不是每个文件都会被用到,可以根据应用程序对库的依赖关系保留需要用到的。通过ldd命令可以查看一个应用程序会用到哪些库。

下一节 :http://blog.csdn.net/mybelief321/article/details/10007719

一步一步制作yaffs/yaffs2根文件系统(三)---使用glibc库构造 /lib

开发环境:Ubuntu 12.04            开发板:mini2440  256M NandFlash   64M SDRAM            交叉编译器:arm-linux-gcc...

一步一步制作yaffs2根文件系统

  • 2017年10月28日 10:03
  • 2.88MB
  • 下载

一步一步制作yaffs/yaffs2根文件系统(二)---安装BusyBox,构造/bin、/sbin、/usr、linuxr

开发环境:Ubuntu 12.04 开发板:mini2440  256M NandFlash   64M SDRAM 交叉编译器:arm-linux-gcc 4.4.3  点此可下载,csdn上传有点...

一步一步制作yaffs/yaffs2根文件系统(二)---安装BusyBox,构造/bin、/sbin、/usr、linuxr

一步一步制作yaffs/yaffs2根文件系统(二)---安装BusyBox,构造/bin、/sbin、/usr、linuxr                               开发...

一步一步制作yaffs/yaffs2根文件系统(四)---构建etc、dev等剩余目录

开发环境:Ubuntu 12.04                      开发板:mini2440  256M NandFlash   64M SDRAM                     ...

一步一步制作yaffs/yaffs2根文件系统(一)---储备好基础知识再打

开发环境:Ubuntu 12.04 开发板:mini2440  256M NandFlash   64M SDRAM 交叉编译器:arm-linux-gcc 4.4.3  点此可下载 BusyBox版...

一步一步制作yaffs/yaffs2根文件系统(四)---构建etc、dev等剩余目录

版权声明:本文为博主原创文章,未经博主允许不得转载。                             开发环境:Ubuntu 12.04              ...

一步一步制作yaffs/yaffs2根文件系统(四)

一步一步制作yaffs/yaffs2根文件系统(四)---构建etc、dev等剩余目录 2013-08-17 16:06 2927人阅读 评论(6) 收藏 举报 本文章...
  • ASKLW
  • ASKLW
  • 2016年09月22日 10:51
  • 248

一步一步制作yaffs/yaffs2根文件系统(八)---总结及怎么样使系统自动启动自己编写的程序

通过前几节的学习制作,我大致地制作了一个比较完整的 yaffs 根文件系统,到这时候将自己移植的uboot、内核、根文件系统移植到自己的开发板中,一个基本的嵌入式 linux 系统也算搭建完成了。但是...

使用busy-box制作Yaffs2根文件系统

2011-08-07 13:59 使用busy-box制作Yaffs2根文件系统 内核支持yaffs2文件系统 下载yaffs2源码cvs-root.tar.gz,解压,进入yaffs2目...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一步一步制作yaffs/yaffs2根文件系统(三)---使用glibc库构造 /lib
举报原因:
原因补充:

(最多只允许输入30个字)