一、准备工作

CentOS5.4发行版中的gcc版本为4.1.2,在编译gem5时出现错误,gem5要求gcc的版本在4.3以上,因此要对CentOS上得gcc进行升级。本文将gcc编译器升级到4.4.6,相关的软件包包括:

binutils-2.21.tar.bz2 包含as汇编器和ld链接器;

gcc-4.4.6.tar.bz2 包含gcc编译器

mpfr-3.0.1.tar.bz2 包含mpfr库,编译gcc需要

gmp-5.0.1.tar.bz2 包含gmp库,编译gcc需要

从GNU网站上下载这些源码包,将这些源码包拷贝到CentOS5.4的某个目录下。

二、编译binutils-2.21

首先解压缩binutils源码包:

tar jxf binutils-2.21.tar.bz2

编译binutils源码包时编译目录要和源码目录分离,以便编译时不会影响源码目录。创建编译目录build/binutils-2.21,在编译目录下进行编译:

xxx/binutils-2.21/configure --prefix=/usr/local/gcc4.4.6

make

make install

其中xxx为binutils源码所在目录。经过上述步骤,就将binutils软件包中的程序安装到了/usr/local/gcc4.4.6目录下。

三、编译gcc-4.4.6

首先解压缩gcc源码包:

tar jxf gcc-4.4.6.tar.bz2

编译gcc需要mpfr和gmp库,解压缩这两个库文件,并将解压之后的库文件移动到gcc源码目录下。

tar jxf mpfr-3.0.1.tar.bz2

mv mpfr-3.0.1 mpfr

mv mpfr gcc-4.4.6

tar jxf gmp-5.0.1.tar.bz2

mv gmp-5.0.1 gmp

mv gmp gcc-4.4.6

在编译目录下建立gcc-4.4.6子目录,在该目录下进行编译:

xxx/gcc-4.4.6/configure --prefix=/usr/local/gcc4.4.6

--enable-clocale=gnu --enable-shared

--enable-threads=posix --enable-__cxa_atexit

--enable-languages=c,c++ --disable-libstdcxx-pch

--disable-multilib --with-gmp-include=$(pwd)/gmp

--with-gmp-lib=$(pwd)/gmp/.libs --without-ppl

--without-cloog --disable-bootstrap

make

make install

这样就将gcc编译器安装到/usr/local/gcc4.4.6目录下,在/etc/profile配置文件的最后添加语句:

export PATH=/usr/local/gcc4.4.6/bin:$PATH

将新安装的gcc编译器命令的路径放到PATH变量的最前面,这样以后执行gcc命令时就会调用gcc4.4.6,如果想使用以前的gcc时,就重新将PATH变量中的/usr/local/gcc4.4.6删除就可以。

linux升级编译器,升级Linux系统中的gcc编译器相关推荐

  1. 【C 语言】Windows 下使用 gcc 编译器 ( 常用的编译器 | Qt 中的 gcc 编译器 | 独立安装 MinGW )

    文章目录 一.常用的编译器 二.使用 Qt 中的 gcc 编译器 三.独立安装 MinGW 一.常用的编译器 常用编译器 : MSVC GCC MinGW CLANG ; MSVC : 微软 Micr ...

  2. 最近在 vscode 中借助 gcc 编译器来配置 c

    最近在 vscode 中借助 gcc 编译器来配置 c 语言开发环境时,发现中文编码存在乱码问题.再加上最近学习到多字节字符与宽字符,搅在一起,搞得很乱,就把自己的理解写下来,供有需者参考吧. 1. ...

  3. Linux 升级到指定内核(Centos7 yum升级内核、centos系统中kernel-devel)

    文章目录 一.Linux 升级内核 Centos7 yum/rpm升级到最新内核 Centos 7 rpm升级到指定内核 关于Linux依赖包资源下载 二.Linux内核源码的编译及安装 三.设置 g ...

  4. linux mysql 僵尸进程_Linux 系统中僵尸进程

    Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸. 僵尸 ...

  5. 移动硬盘里的linux系统文件夹加密,在Deepin系统中加密移动存储设备的方法

    本文介绍简单可行的方法让你在Deepin系统中加密你的移动存储设备,包括U盘及移动硬盘.同时要指出的是虽然可以采用下面方法保护数据不让他人随意观看,但是不能阻止他人破坏数据,例如,格式化U盘或移动硬盘 ...

  6. linux java 僵尸进程_Linux 系统中僵尸进程

    Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸.配图源 ...

  7. linux 软键盘输入密码,Linux_Linux系统中使用屏幕键盘的方法,屏幕键盘可以作为实体键盘输 - phpStudy...

    Linux系统中使用屏幕键盘的方法 屏幕键盘可以作为实体键盘输入的替代方案.在某些时候,屏幕键盘显得非常需要. 比如, 你的键盘刚好坏了:你的机器太多,没有足够的键盘:你的机器没有多余的接口来连接键盘 ...

  8. Linux第一本书 第八章 系统中的软件管理

    1.Linux中软件包的类型 1)DEB  ##UB linux DBElinux 2)RPM   ##redhat centOS fadora 3)bz2 | gz | xz   ## 需要源码安装 ...

  9. erp服务器安装Linux,在Ubuntu 18.04系统中安装Dolibarr ERP/CRM的步骤

    本文将介绍在服务器Ubuntu 18.04系统中安装Dolibarr ERP/CRM的步骤,该软件支持Windows.BSD.Mac.Solaris.Linux平台.Dolibarr是一款非常有能力的 ...

最新文章

  1. Nginx 挂了怎么办?怎么实现高可用?
  2. java 并发_Java并发原理无废话指南
  3. python根目录_Pycharm使用嵌入式Python
  4. ASP.NET Core 基础知识(十四)错误处理
  5. oracle回退脚本怎么写_直播间脚本要怎么写?李佳琦、薇娅直播间直播脚本解析!...
  6. 组策略链接顺序优先级
  7. 用户收货地址h5页面_如何实现H5可视化编辑器的实时预览和真机扫码预览功能...
  8. 同一个事务里面对同一条数据做2次修改_[玩转MySQL之九]MySQL事务ACID[2-1]ACID详解...
  9. 运动状态估计之卡尔曼滤波详解
  10. 下列属于usb转串口的芯片是_USB转串口常用芯片
  11. 怎样在电脑上面简单的记账,了解账户收支
  12. CUMCM→MCM/ICM→NPMCM:关于国赛(全国大学生、研究生、博士研究生数学建模竞赛)和美赛中的数学的专业词汇详细攻略—美国数学建模竞赛
  13. 海淀牙齿矫正:牙齿矫正的步骤
  14. ldc java_java-如何在Jasmin中使用“ ldc_w”避免“常量...
  15. 王者荣耀我的服务器没显示哪个区,王者荣耀怎么看自己在哪个区
  16. 外贸人如何快速学好英语
  17. 史上讲解最好的 Docker 教程,从入门到精通(建议收藏的教程)
  18. 能否在虚拟平台里构建真实的生活体验?
  19. 基于51单片机电热水壶自动加热水温控制系统(源程序+仿真+论文)
  20. 对于三大moba游戏的一点小想法

热门文章

  1. c#学习的路上,困难重重,有的时候感觉很简单的问题,很简单的功能就是做不出来。
  2. 视频生成二维码操作指南(手把手操作教程)
  3. 上线8年,腾讯为何现在暂停“漂流瓶”?
  4. 公司要IT转型,我该怎么办?python快速建站
  5. 小白用win10还是linux,接触linux的第一天 。丢掉WIN10,(小白Aking的日记)
  6. linux系统下对python创建的模块进行打包并发布的具体步骤
  7. 一看就懂系列之Golang的pprof
  8. linux系统下怎么使用lspci,Linux系统之lspci命令介绍
  9. 外部文件数据写入hive
  10. 情绪失控?好的心态你值得拥有!