RHEL 6.5升级GCC 4.9.3
前提:保证旧版的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的更多相关文章
- Centos7升级gcc版本方法之一使用scl软件集
Centos7 gcc版本默认4.8.3,Red Hat 为了软件的稳定和版本支持,yum 上版本也是4.8.3,所以无法使用yum进行软件更新,所以使用scl. scl软件集(Software Co ...
- CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update.... yum install 或者 添加y ...
- Ubuntu 14.04 LTS 下升级 gcc 到 gcc-4.9、gcc-5 版本
如果没记错的话,阿里云ECS上的Ubuntu也是LTS版本. 如果还在使用较旧版本的Ubuntu,或者是Ubuntu LTS,那么我们是很难体验新版gcc的.怎么办呢? 我们或许可以自己去编译用旧版本 ...
- Mac中使用port升级gcc版本
Mac OS中的gcc版本可能不会满足实际使用要求,需要对其升级. 这里介绍使用port方式来升级gcc版本.Macports是Mac OS中的软件包管理工具. 首先,安装Macports 这里提供O ...
- Ubuntu 14.04 升级gcc 4.8到gcc 5.x
简介 有些软件比较新,需要更高的gcc版本,所以需要升级gcc.编译安装比较耗时,所以直接选择bin包就好. 步骤 添加源 sudo add-apt-repository ppa:ubuntu-too ...
- Centos7升级gcc学习笔记
概述 最近在学习<深入应用C++11-代码与优化与工程级应用>,我的gcc版本是gcc-4.8.5是支持C++11的,但是我在作者的github上看了一些C++例子,其中有些是C++14的 ...
- redhat下升级gcc编译器
在有网络的环境下,采用下载gcc源码进行编译的方式升级gcc版本,所以需要本身已有gcc编译器. 获取 gcc-4.9.2的包: wget http://gcc.skazkaforyou.com/re ...
- 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 ...
- 转载:Centos升级gcc
一.检查centos 里面是否安装了gcc g++ 输入命令:rpm -qa|grep gcc*有看到就出来gcc的东西就是装了没有的话就yum install gcc* -y 二.升级gcc 对于C ...
随机推荐
- Apache Shiro Architecture--官方文档
原文地址:http://shiro.apache.org/architecture.html Apache Shiro's design goals are to simplify applicati ...
- __asm__ __volatile__("": : :"memory");
参考:http://stackoverflow.com/questions/14950614/working-of-asm-volatile-memory asmvolatile("&quo ...
- c语言中文件的操作
所谓“文件”是指一组相关数据的有序集合.这个数据集有一个名称,叫做文件名.实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等. 文件通常是驻留在外部 ...
- 小白日记19:kali渗透测试之选择和修改EXP
EXP 目的:学会选择和修改网上公开的漏洞利用代码[EXP(python\perl\ruby\c\c++....)] 方法: 1.Exploit-db[kali官方维护的漏洞利用代码库] 2.Secu ...
- JavaScript 之 页面跳转及Frame动态加载
一.页面跳转 JS跳转大概有以下五种方式: 1.跳转到B页面 <script language="javascript" type="text/javascript ...
- 使用c3p0连接池
首先我们需要知道为什么要使用连接池:因为jdbc没有保持连接的能力,一旦超过一定时间没有使用(大约几百毫秒),连接就会被自动释放掉,每次新建连接都需要140毫秒左右的时间而C3P0连接池会池化连接,随 ...
- struts2.1笔记01:MVC框架思想浅层理解
1. Struts 1是全世界第一个发布的MVC框架: 它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,S ...
- 对x264_macroblock_cache_load的理解
X264版本: 2004/06/03 函数作用: 将编码该宏块所需的信息加载到mb.pic.mb.cache两个结构体中,记录相邻宏块的存在性. 函数过程: 初始化坐标信息,这些坐标信息将在下面用作下 ...
- 慕课网,我的yii2学习笔记(基础篇)
一.关于PHP知识点 1.命名空间:存放类文件的空间,可以随便定义,建议与类文件目录一致,方便管理. 注:(1).如果类没有设置命名空间,默认为顶级命名空间,在程序中可以用一下方式实例化. $mode ...
- oracle数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1)
数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1) 文档内容 用途 详细信息 Patchsets ...