对于gcc glibc和binutils升级的次序问题分析与思考

一、相关知识

    1、GCC是一个用于linux系统下编程的编译器。GCC原本只能处理C语言,但后来扩展到可处理C++,之后也可处理Fortran、Pascal、Objective-C、Java、Ada,以及Go与其他语言。它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的运行库的支持。(注意它所提供的库,以便于当安装软件时,可以知道缺少的是gcc提供的库还是Glibc提供的库)。

         GCC安装后系统包含的内容如下:

 


2、Glibc

        glibc是gnu发布的libc,即c运行库。glibc是linux系中最底层的api几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。Glibc提供的必要功能主要的如下:
(1)string,字符串处理

(2)signal,信号处理
(3)dlfcn,管理共享库的动态加载
(4)direct,文件目录操作
(5)elf,共享库的动态加载器,也即interpreter
(6)iconv,不同字符集的编码转换
(7)inet,socket接口的实现
(8)intl,国际化,也即gettext的实现

(Array)io
(10)linuxthreads
(11)locale,本地化
(12)login,虚拟终端设备的管理,及系统的安全访问
(13)malloc,动态内存的分配与管理

(14)nis
(15)stdlib,其它基本功能

Glibc安装后,提供的工具及库如下:



3、binutils

      binutils提供了一系列用来创建、管理和维护二进制目标文件的工具程序,如汇编(as)、连接(ld)、静态库归档(ar)、反汇编(objdump)、elf结构分析工具(readelf)、无效调试信息和符号的工具(strip)等。常,binutils与gcc是紧密相集成的,没有binutils的话,gcc是不能正常工作的。

  binutils安装后提供的工具及库如下:




二、安装与升级的思考

       (最好是三者版本相匹配)

    1、关于安装

        从上边的介绍以及安装LFS的理解来说,这三个之间的依赖关系非常紧密,很难说清哪个先哪个后,就是鸡蛋与鸡的问题。但是,安装的时候肯定是要借助于另外的系统或者是工具链(gcc,glibc,binutils以及内核头文件)。如果是这样的话,就好办了,一般是这样的顺序:先安装binutils, 然后Gcc, 内红头文件,glibc。 最后要注意,要调整安装的这三个工具(即工具链),使gcc和binutils依赖glibc。

     2、关于升级

             升级的话,需要哪个直接安装就可以了,但是一定要注意,安装之后一定要调整好三者之间的依赖关系,尤其是glibc的安装和依赖关系的调整如果升级两个以上软件,则要参考1部分。

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值