开发环境: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的,可不可以使用呢?答案是可以的!

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的更多相关文章

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

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

  2. 一步一步制作yaffs/yaffs2根文件系统(七)---真挚地道歉以及纠正前边出现的错误!

    接上一节http://blog.csdn.net/mybelief321/article/details/10040939 说实话,我当时写这个系列的博文的时候,感觉对BusyBox算是有点了解,直到 ...

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

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

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

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

  5. Yaffs2根文件系统制作

    Yaffs2根文件系统制作 环境: 交叉编译环境:4.4.6 开发平台:s3c2416 1,编译busybox 获取busybox源码busybox-1.17.2.tar (http://www.bu ...

  6. 制作ramdisk-u.img根文件系统

    具体步骤如下:1.解压内核源码树解压linux-2.6.29-mini2440-20090708.tgz到自己的工作目录,会生成一个友善之臂修改过的并且有几个mini2440默认配置文件的内核源码目录 ...

  7. 使用BusyBox制作嵌入式Linux根文件系统

    STEP 1:构建目录结构  创建根文件系统目录,主要包括以下目录/dev  /etc /lib  /usr  /var /proc /tmp /home /root /mnt /bin  /sbin ...

  8. yaffs2根文件系统的构建过程

    基于BusyBox-1.19.2  (以其它作者的作为参考) 1. 下载BusyBox的源码 http://busybox.net/ 2. 解压#tar xvzf busybox-1.19.2.tgz ...

  9. Busybox制作ARM(iTOP4412) 根文件系统

    本记录来源与自身操作过程. 1.制作环境 PC环境:外部Winows8.1 内部则为vmware11+ubuntu12.04 嵌入式设备:iTOP4412 交叉工具:arm-none-linux-gn ...

随机推荐

  1. js中 在数组中删除重复的元素(自保留一个)

    例如:var student = [‘qiang’,’ming’,’tao’,’li’,’liang’,’you’,’qiang’,’tao’]; 第一种思路是:遍历要删除的数组arr, 把元素分别放 ...

  2. 弹性布局学习-详解 justify-content(三)

    弹性布局学习-详解 justify-content(三)

  3. 零基础学Python 3之环境准备

    一. 配置python 3 环境 1. Python 3 下载 64位 https://www.python.org/ftp/python/3.4.2/python-3.4.2.amd64.msi 3 ...

  4. IOS 学习参考

    IOS 开发 http://code4app.com/ios/%E5%AE%9E%E6%97%B6%E6%9B%B4%E6%96%B0%E7%9A%84%E6%9B%B2%E7%BA%BF%E5%9B ...

  5. PHP视频教程 > PHP面向对象编程视频教程

    当前位置: 主页 > 编程开发 > PHP视频教程 > PHP面向对象编程视频教程 > kingstone金士顿手机内存卡16G仅65元 1.1.什么是面向对象和类 上传日期: ...

  6. 制作滚动视图(ScrollView)

    怎样判断是否应当使用滚动视图 所谓的滚动视图,是指一个可以滑动的视窗,视窗大小和位置固定不变,视窗内的内容用户可以通过手指滑动或者拖动滚动天来进行滚动浏览. 滚动视图的目的是为了解决同类内容过多,一个 ...

  7. iOS的layoutSubviews和drawRect方法何时调用

    layoutSubviews在以下情况下会被调用: 1.init初始化不会触发layoutSubviews.2.addSubview会触发layoutSubviews.3.设置view的Frame会触 ...

  8. mac 如何让文件隐藏

    1.首先,要确保知道目标文件或文件夹的名称,你不把这个名称正确地输入到终端中,Mac也无能为力啊... 2.打开终端,输入chflags hidden 3.在上述代码的后面加上该文件夹的路径,但是注意 ...

  9. poj 1659 Frogs' Neighborhood (DFS)

    http://poj.org/problem?id=1659 Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total S ...

  10. 论文阅读(2014-1)----a new collaborative filtering-based recommender system for manufacturing appstore: which applications would be useful to your busines?

    这篇论文讲的东西并不深,讲的是appstore上的app个性化推荐问题,简单做个笔记. 简单介绍: 推荐系统可以降低没有卖任何app就离开的用户的概率.当用户买了某个app后,可以推荐配套的app.增 ...