一、查看本机GCC版本:

使用gcc -v 查看本机版本信息,我的gcc版本为:

gcc 版本 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC)

二、升级或安装编译器:

1、下载GCC源码包:

wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2;

2、安装gcc还需要gmp、mpfr、mpc这3个库,否则直接对gcc进行编译安装会出现如下错误:  

gcc configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8。

3、下载所需安装包:

mpc-1.0.2.tar.gz: wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.2.tar.gz

gmp-5.1.3.tar.bz2:wget ftp://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.bz2

mpfr-3.1.2.tar.bz2:wget http://www.mpfr.org/mpfr-current/mpfr-3.1.2.tar.bz2

4、安装所需资源包:

先安装GMP,对资源包加压: tar -xvf gmp-5.1.3.tar.bz2,进入压缩目录,输入下面命令进行配置:

./configure --prefix=/usr/local/gmp-5.1.3

make && make install;

mpfr和mpc的安装于gmp的安装相似,只需要进行如下配置:

mpfr-3.1.2:

./configure --prefix=/usr/local/mpfr-3.1.2 --with-gmp=/usr/local/gmp-5.1.3/

mpc-1.0.2:

./configure --prefix=/usr/local/mpc-1.0.2 --with-gmp=/usr/local/gmp-5.1.3/ --with-mpfr=/usr/local/mpfr-3.1.2/

5、安装gcc

安装好这三个库之后,就可以正式开始安装gcc了。   当然了链接的时候,需要刚刚编译的3个lib。暂时导入这3个库文件目录: export LD_LIBRARY_PATH=$LD_LIBEARY_PATH:/usr/local/mpc-1.0.2/lib/:/usr/local/gmp-5.1.3/lib/:/usr/local/mpfr-3.1.2/lib/  然后是典型的configure,make,install三步曲。

gcc的配置如下:

./configure --prefix=/usr/local/gcc-4.8 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-5.1.3/ --with-mpfr=/usr/local/mpfr-3.1.2/ --with-mpc=/usr/local/mpc-1.0.2/

make && make install;

GCC的安装时间比较长,等待惊醒安装完成,测试gcc是否升级成功:

gcc -v

GCC4.8.2升级安装的更多相关文章

  1. centos6 升级安装openssh7

    1.准备工作: 查看下当前SSH版本: [root@bogon ~]# ssh -V OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013 或者 [root@b ...

  2. 【转】Centos下编译升级安装Boost

    https://www.xingchenw.cn/article/191 Centos下编译升级安装Boost 首先在官网现在相应的包 https://www.boost.org/users/down ...

  3. Windows升级(安装)MySQL 5.7.x 解压版 + 异常处理

    说明 版本升级(个人原因): 因为5.5的版本不能执行如下sql语句,故卸装5.5升级安装mysql-5.7.15: `timeName` timestamp(3) NULL DEFAULT NULL ...

  4. android开发 更新升级安装到一半自动闪退

    如题:android开发 更新升级安装到一半自动闪退,,,解决办法,如下(红色为我新增的代码) /**     * 安装APK文件     */    private void installApk( ...

  5. <未测>源码升级安装glibc和rpm升级glibc

    源码升级安装glibc和rpm升级glibc http://jacklin9.spaces.live.com/blog/cns!A891B52E1182AFB2!346.entry http://bl ...

  6. 升级安装php7要考虑的几个方面

    php7从推出到现在,前两天官方已经发布到7.2版本,把自己升级和安装php7中遇到的问题和解决方法做一个笔记,内容主要包括:1) mysql2) php3) nginx4) memcache扩展5) ...

  7. 6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇-优化升级(安装Apache (Web服务器)软件,测试HTTP)

    为了和SDK升级保持协议一致,花了两天时间实现了用LUA开发,MQTT+HTTP方式实现远程升级 安装Apache主要是为了实现通过HTTP下载资源 升级介绍: 0,用户点击检查更新时,APP首先通过 ...

  8. FileProvider N 7.0 升级 安装APK 选择文件 拍照 临时权限 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  9. 完美原创:centos7.1 从源码升级安装Python3.5.2

    (原创)完美原创:centos7.1 从源码升级安装Python3.5.2 下载Python3.5.2源码:https://www.python.org/downloads/release/pytho ...

随机推荐

  1. HostOnly Cookie和HttpOnly Cookie

    怎么使用Cookie? 通常我们有两种方式给浏览器设置或获取Cookie,分别是HTTP Response Headers中的Set-Cookie Header和HTTP Request Header ...

  2. 获取B表数据添加到A表中作为一个下拉列表元素存在

    1.ProductController类里toedit方法内添加: ProductModel product = ProductModel.dao.findById(id); //通过id查找服务类 ...

  3. Lambda GroupBy Sum

    DataTable dt = new DataTable(); dt.AsEnumerable().GroupBy(r => r["ShopName"]) .Select(g ...

  4. Perl语言

    Perl是高级.通用.直译式.动态的程序语言家族.最初设计者拉里·沃尔(Larry Wall)为了让在UNIX上进行报表处理的工作变得更方便,决定开发一个通用的脚本语言,而在1987年12月18日发表 ...

  5. MySQL for Visual Studio Version

    MySQL for Visual Studio Version Connector/Net Version Supported Visual Studio Version Supported MySQ ...

  6. gcc 使用 stdio.h

    9876543210z@z:~/funnyC++$ cat main.cpp #include <stdio.h> int main() { ; ) { printf("%d&q ...

  7. socket网络通信

    1.socket通常也称作"套接字",用于描述IP地址和端口.在internet上的主机一般运行了多个服务软件,同时提供几种服务,每种服务都打开一个socket,并绑定到一个端口上 ...

  8. 关于js原型继承

    js的每个类都有一个prototype对象 访问对象的属性时,会先访问到对象自身是否有定义这个属性 如果没有定义,就会去访问对象所属类型的prototype对象是否有此属性 原型继承就是把类型的pro ...

  9. Git学习(四)——分支管理

    一.创建与合并分支 1.创建分支 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点.每次提交 ,mast ...

  10. oracle定时器

    /* 每10秒钟执行一次 插入一条时间 */ -- 创建table create table tab_time( current_time timestamp ); -- 创建存储过程 create ...