前提:保证旧版的gcc,g++存在! root用户

1. 下载源码和依赖包源码:新建目录bak
wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.3/gcc-4.9.3.tar.gz

#Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+
wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
wget http://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.gz
wget http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.0.tar.gz

$ ls bak/*.gz
bak/gcc-4.9.3.tar.gz bak/gmp-5.0.1.tar.gz bak/mpc-0.9.tar.gz bak/mpfr-3.1.0.tar.gz

2. 编译
解压tar包,并新建编译目录 t t1 t2 t3,分别进行以上源码编译
$ ls bak
t t1 t2 t3

cd t1
../gmp-5.0./configure --prefix=/usr/local/gmp-5.0.
make
make install cd t2
../mpfr-3.1./configure --prefix=/usr/local/mpfr-3.1. --with-gmp=/usr/local/gmp-5.0.
make
make install cd t3
../mpc-0.9/configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0. --with-mpfr=/usr/local/mpfr-3.1.
make
make install #设置链接,在/etc/profile文件末尾加上,注意修改后运行#source /etc/profile 使其生效即可
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0./lib:/usr/local/mpfr-3.1./lib cd t
../gcc-4.9./configure --prefix=/usr/local/gcc-4.9. --with-mpc=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0. --with-mpfr=/usr/local/mpfr-3.1. --disable-multilib --enable-languages=c,c++ --enable-threads=posix --disable-checking
make
make install

编译安装

3. 切换GCC到新版:
[root@localhost bin]# pwd
/usr/bin
[root@localhost bin]# mv gcc gcc-4.4.7
[root@localhost bin]# ln -s /usr/local/gcc-4.9.3/bin/gcc /usr/bin/gcc
[root@localhost bin]# mv g++ g++-4.4.7
[root@localhost bin]# ln -s /usr/local/gcc-4.9.3/bin/g++ /usr/bin/g++

4. ok,确认版本
gcc -v
g++ -v

----补充:

若可以联网的话,有以下两个参考,未测试过

1.下载供编译需求的依赖项

参考文献[1]中说:这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。

cd gcc-4.9.3 
./contrib/download_prerequisites 

2. 编译(注意:此步骤非常耗时)

make -j4
-j4选项是make对多核处理器的优化,如果不成功请使用 make,相关优化选项可以移步至参考文献[2]。

如果报错错误集中在 x86_64unknown-linux-gnu/32/libgcc 和 x86_64-unknown-linux-gnu/libgcc
根据参考文献[3],安装如下两个软件包(仅用于CentOS6.X):
yum -y install glibc-devel.i686 glibc-devel

1. 安装静态库,如果没有安装静态库,后面编译不会通过;

yum groupinstall "Development Tools" 
yum install glibc-static libstdc++-static -y
yum -y install glibc-devel.i686 glibc-devel

4. 进入目录;

cd gcc-x.x.x

5. 运行脚本download_prerequisites,此脚本会自动下载依赖库;

./contrib/download_prerequisites

6. 新建临时目录,用于存放编译过程中的临时文件;

mkdir gcc-build

cd gcc-build

7. 配置编译选项;

../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

8. 编译安装,过程十分漫长,在我的小霸王上足足编了2个多小时;

make & make install

RHEL 6.5升级GCC 4.9.3的更多相关文章

  1. Centos7升级gcc版本方法之一使用scl软件集

    Centos7 gcc版本默认4.8.3,Red Hat 为了软件的稳定和版本支持,yum 上版本也是4.8.3,所以无法使用yum进行软件更新,所以使用scl. scl软件集(Software Co ...

  2. CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)

    ---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update....   yum install 或者 添加y ...

  3. Ubuntu 14.04 LTS 下升级 gcc 到 gcc-4.9、gcc-5 版本

    如果没记错的话,阿里云ECS上的Ubuntu也是LTS版本. 如果还在使用较旧版本的Ubuntu,或者是Ubuntu LTS,那么我们是很难体验新版gcc的.怎么办呢? 我们或许可以自己去编译用旧版本 ...

  4. Mac中使用port升级gcc版本

    Mac OS中的gcc版本可能不会满足实际使用要求,需要对其升级. 这里介绍使用port方式来升级gcc版本.Macports是Mac OS中的软件包管理工具. 首先,安装Macports 这里提供O ...

  5. Ubuntu 14.04 升级gcc 4.8到gcc 5.x

    简介 有些软件比较新,需要更高的gcc版本,所以需要升级gcc.编译安装比较耗时,所以直接选择bin包就好. 步骤 添加源 sudo add-apt-repository ppa:ubuntu-too ...

  6. Centos7升级gcc学习笔记

    概述 最近在学习<深入应用C++11-代码与优化与工程级应用>,我的gcc版本是gcc-4.8.5是支持C++11的,但是我在作者的github上看了一些C++例子,其中有些是C++14的 ...

  7. redhat下升级gcc编译器

    在有网络的环境下,采用下载gcc源码进行编译的方式升级gcc版本,所以需要本身已有gcc编译器. 获取 gcc-4.9.2的包: wget http://gcc.skazkaforyou.com/re ...

  8. Centos6.5升级gcc for qt5.3.1

    1.升级GCC CentOS6.5内置的GCC版本为4.4,而Qt5.2.1则需要4.8.2的支持(支持C++ 11特性),因此,必须先升级GCC wget http://ftp.tsukuba.wi ...

  9. 转载:Centos升级gcc

    一.检查centos 里面是否安装了gcc g++ 输入命令:rpm -qa|grep gcc*有看到就出来gcc的东西就是装了没有的话就yum install gcc* -y 二.升级gcc 对于C ...

随机推荐

  1. Jordan Lecture Note-9: Principal Components Analysis (PCA).

    Principal Components Analysis (一)引入PCA    当我们对某个系统或指标进行研究时往往会发现,影响这些系统和指标的因素或变量的数量非常的多.多变量无疑会为科学研究带来 ...

  2. Java_InvokeAll_又返回值_多个线程同时执行,取消超时线程

    package com.demo.test4; import java.util.ArrayList; import java.util.List; import java.util.concurre ...

  3. Android进阶笔记12:Manymo(在线安卓系统模拟器工具)

    Manymo: 在线安卓系统模拟器工具是一款启动速度快,且在浏览器中就能运行流畅.你可以使用它来测试你的安卓应用,他最多能支持42种屏幕尺寸和系统版本. 长久以来,Android开发者面临的困境之一就 ...

  4. 用jQuery+easyUI遇到的几个插件与文件详解

    很早就开始跟着老师学习jQuery课程,那时候是要求熟练使用jQuery中的easyUI插件中的控件,包括textbox.combobox.panel.checkbox.tree.datagrid等等 ...

  5. JavaScript实现复选框的全选,反选,不选

    <script> window.onload=function(){ var CheckAll=document.getElementById('All'); var UnCheck=do ...

  6. 安装Laravel之坎坷记述

    写这篇文章记录以及分享我安装Laravel框架的一些经验 过程如下: 1.按照官方的描述,第一步是先安装composer来管理依赖=>composer下载传送门 下载之后点击安装,按照提示它需要 ...

  7. POJ 3074 Sudoku (DLX)

    Sudoku Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  8. 【单峰函数,三分搜索算法(Ternary_Search)】UVa 1476 - Error Curves

    Josephina is a clever girl and addicted to Machine Learning recently. She pays much attention to a m ...

  9. (转载)运行主机管理在openvswitch之上

    在这篇文章里介绍了如果运行主机管理在openvswitch之上,而不是单独配置一个物理网卡用于主机管理,并且所有的vm的流量还是通过openvswitch走的. Running Host Manage ...

  10. C# 计算文件的 Hash 值

    /// <summary> /// 提供用于计算指定文件哈希值的方法 /// <example>例如计算文件的MD5值: /// <code> /// String ...