开发环境: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. Yaffs2根文件系统制作

    Yaffs2根文件系统制作 zouxy09@qq.com http://blog.csdn.net/zouxy09 环境: 交叉编译环境:4.3.3 (天嵌科技提供,存放路径/home/xiaoyi/ ...

  2. linux 制作 ext2 格式根文件系统镜像

    参考: https://blog.csdn.net/zgtzqzg2020/article/details/109848251 嵌入式烧写 uboot, kernel, rootfs 文章内容和参考项 ...

  3. 制作buildroot根文件系统(三):使用mplayer播放视频

    文章目录 参考 前言 一.制作根文件系统 1.关于 mplayer 2.配置buildroot 3.编译buildroot 4.生成的根文件系统和工具链位置 二.测试根文件系统 1.解压根文件系统到N ...

  4. 用busybox制作并配置根文件系统

    http://blog.chinaunix.net/uid-26758020-id-3208951.html ============================================= ...

  5. 制作嵌入式Linux根文件系统

    文章目录 1. 根文件系统布局 2. 使用BusyBox生成二进制工具 2-1. 获取BusyBox源码 2-2. 配置BusyBox 2-2-1. 选择编译静态库 2-2-2. 选择交叉编译工具链 ...

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

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

  7. 嵌入式linux rootfs,【转】制作 嵌入式 linux 根文件系统 rootfs

    一.什么是文件系统 (Filesystem) 文件系统是包括在一个磁盘(包括光盘.软盘.闪盘及其它存储设备)或分区的目录结构:一个可应用的磁盘设备可以包含一个或多个文件系统:如果您想进入一个文件系统, ...

  8. Linux学习笔记---使用BusyBox创建根文件系统(三)

    目录 创建/etc/init.d/rcS 文件 创建/etc/fstab 文件 创建/etc/inittab 文件 创建/etc/init.d/rcS 文件 通过nfs加载根文件系统成功后,在串口终端 ...

  9. 详解-制作根文件系统,并使用yaffs,jffs,nfs挂载系统(2)

    1.安装mkyaffsimage, mkyaffs2image命令(用来制作yaffs文件系统) 第一个命令针对Flash小页512B,第二个针对Flash大页2KB 首先下载压缩文件 yaffs_s ...

最新文章

  1. Linux中crontab定时执行python程序
  2. 计算机软件大作业,计算机软件基础大作业
  3. Jacobian 和Hessian矩阵
  4. 2原理图_pcb板设计电路原理图步骤和方法
  5. body curl命令测试post_HTTP接口调试利器!4.8万Star的HTTP命令行客户端!
  6. (16)WEB前端开发规范之HTML规范
  7. 大数据之-Hadoop完全分布式_SCP案例_同时在1000台服务器上安装JDK_配置环境变量---大数据之hadoop工作笔记0031
  8. 异常:Invalid character found in the request target. The valid characters are defined in RFC 3986
  9. python难学吗-我没有基础,能否学会Python?Python难吗?
  10. java spring 源码下载_Spring源码下载
  11. 计算机网络 | 划分子网
  12. delphi显示jpg、png、gif图片
  13. mysql explain 类似_Oracle有没有类似MySQL中的explain功能
  14. URI URL区别及转换
  15. 智慧养老的发展形势及智慧养老热点、痛点、难点
  16. C语言 - 隐式类型转换
  17. AutoJs学习-免ROOT免无障碍画圆球
  18. 基于PSINS工具箱的卡尔曼滤波与SINS/GNSS组合导航
  19. h3c linux静态链路聚合,h3c核心交换机接海康交换机链路聚合该怎么做静态的
  20. dbms chapter3

热门文章

  1. setTimeout和setInterval实现定时器的区别
  2. 用dmidecode - 查看硬件信息
  3. linux 更改服务的启动顺序
  4. 谷歌公布十大恶意网站 均曾攻击上万网站
  5. 贝叶斯网络结构学习之K2算法(基于FullBNT-1.0.4的MATLAB实现)
  6. Idea 启动项目 很慢,总会到某个点进行延迟卡顿。
  7. Go-实现猜数字游戏代码
  8. Android记事本开发02
  9. OpenSSH修改版本号教程
  10. iOS:极光推送控制器跳转