构建根文件系统二之安装使用glibc库
2013-08-11 09:40
253 查看
在我们***交叉编译工具链arm-linux-gcc时,已经生成了glibc库,可以直接使用它来构建根文件系统,本文使用的时光盘里自带的压缩库,由下图可以看出,这是arm-linux-gcc3.4.5版本的glibc库,而我的arm-linux-gcc是4.4.3的,可不可以使用呢?可以的啊!glibc库点此下载
1、执行命令:tar -jxvf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 解压
可以看到解压到了gcc-3.4.5-glibc-2.3.6文件夹,而我们需要的glibc库的位置存放在gcc-3.4.5-glibc-2.3.6/arm-linux/lib 文件夹下
2、执行命令: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目录。
里面是各种连接脚本,在编译应用程序时,它们被用于制定程序的运行地址、各段的位置等。
⑧ 其他目录及文件。
3、废话那么多,现在安装glibc库,在上一节我们编译安装busybox时使用的是动态连接,这里在开发板上只需要加载器和动态库,假设要创建的根文件系统目录为/home/song/nfs_root/fs_mini,操作如下:
执行命令:mkdir -p /home/song/nfs_root/fs_mini/lib
执行命令:cp /YourPath/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/*.so* /YourPath/nfs_root/fs_mini/lib/
至此,glibc库已经安装完成。其实,上面复制的库文件不是每个文件都会被用到,可以根据应用程序对库的依赖关系保留需要用到的。通过ldd命令可以查看一个应用程序会用到哪些库。
下一节/article/1644879.html
1、执行命令:tar -jxvf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 解压
可以看到解压到了gcc-3.4.5-glibc-2.3.6文件夹,而我们需要的glibc库的位置存放在gcc-3.4.5-glibc-2.3.6/arm-linux/lib 文件夹下
2、执行命令: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目录。
里面是各种连接脚本,在编译应用程序时,它们被用于制定程序的运行地址、各段的位置等。
⑧ 其他目录及文件。
3、废话那么多,现在安装glibc库,在上一节我们编译安装busybox时使用的是动态连接,这里在开发板上只需要加载器和动态库,假设要创建的根文件系统目录为/home/song/nfs_root/fs_mini,操作如下:
执行命令:mkdir -p /home/song/nfs_root/fs_mini/lib
执行命令:cp /YourPath/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/*.so* /YourPath/nfs_root/fs_mini/lib/
至此,glibc库已经安装完成。其实,上面复制的库文件不是每个文件都会被用到,可以根据应用程序对库的依赖关系保留需要用到的。通过ldd命令可以查看一个应用程序会用到哪些库。
下一节/article/1644879.html
相关文章推荐
- 构建根文件系统二之安装使用glibc库
- 使用BusyBox构建根文件系统
- 使用busybox构建linux根文件系统
- 全面了解安装使用Linux下的日志文件系统
- 如何让windows升级文件在下载安装系统时使用
- 构建postfix邮件服务器(五)extmail和extman的安装,实现web使用和管理邮件系统
- 使用inf文件安装文件系统驱动程序的三种方式
- 安装 Mac OS X 时不要使用大小写敏感的日志文件系统
- 区块链研究-星际文件系统IPFS之Windows环境安装及使用入门
- fuse 虚拟文件系统 的 安装与使用
- 如何复制已安装好系统的VDI文件作为新的Guest系统磁盘使用?
- error 25015安装程序集“C:\Windows\Microsoft .NET\Framework\v2.0.50727\xxx.dll”失败,原因是出现了系统错误:另一个程序正在使用此文件,进程无法访问
- MFS文件系统安装、使用详解
- 使用busybox构建linux根文件系统
- fuse 虚拟文件系统 的 安装与使用
- 虚拟机安装Debian7 后无法使用共享文件夹,提示:无法更新运行时文件夹共享状态: 在客户机操作系统内装载共享文件夹文件系统时出错。
- 使用GHOST镜像文件在VMWARE WROKSTATION上安装系统(图)
- 使用busybox构建yaffs2根文件系统(前言)
- 为omap3530使用BusyBox构建linux文件系统及添加telnet服务
- 全面了解安装使用Linux下的日志文件系统