前提:保证旧版的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. java_线程-锁

    package com.demo.test3; import java.util.concurrent.CountDownLatch; /** * @author QQ: 1236897 * */ / ...

  2. PHP.8-HTML+CSS(二)-HTML详解

    HTML+CSS HTML参考手册[http://www.w3school.com.cn/tags/index.asp] 0.HTML主体标记 代码分为三部分编写 <html> 是网页文件 ...

  3. hdfs: 一个分布式文件系统(一)

    一. hdfs设计的动机 为大规模分布式计算准备的分布式文件系统,并非实时性要求很高的文件系统. 二. 设计的取舍 1. 因为要求有高吞吐量,所以牺牲读取文件的实时性,实时性要求高的分布式文件系统可以 ...

  4. DataTable 的数据导出到 Excel

    如果有个DataTable类型的数据,可以这样导出到Excel中: public static void ExportToExcel(DataTable dt, string fileName) { ...

  5. Mysql 复习

    1.my.ini :mysql 配置文件 [client]#password    = your_passwordport        = 3306socket        = /tmp/mysq ...

  6. 远程管理之VNC

    远程管理的基本概念 ①RDP(remote desktop protocol)协议 远程桌面协议,我们常用的windows操作系统就是的远程桌面管理就是基于该协议的,更多有关RDP协议的可以查看百度百 ...

  7. Jedis操作Redis数据库

    添加Maven依赖: <dependencies> <!-- 单元测试 --> <dependency> <groupId>junit</grou ...

  8. Linux系统内核制作和内核模块的基础

    Linux系统内核制作 1.清除原有配置与中间文件 x86:  make distclean arm:  make distclean 2.配置内核 x86:  make menuconfig arm ...

  9. Sublime Text—设置浏览器快捷键

    在不同浏览器查看代码效果可谓是家常便饭,所以用不同快捷键打开相应浏览器可以大大提高工作效率. 介绍个简单的方法只需二步: 一.安装插件SideBarEnhancements 打开Package Con ...

  10. Nginx环境下配置PHP使用的SSL认证(https)

    最近一段时间发现好多网站都从http协议变成了加密的https协议,比如说百度.吾志等等.https看起来比http高端了好多,而且在不同的浏览器向上还会显示出不同于http的URL展示效果(比如说c ...