各发行版本Linux中,其自带的gcc安装源版本都比较旧,我所使用CentOS 6系统中,gcc版本只有4.4.7。最近要安装几个软件要求gcc 4.8+,无奈只能手动升级gcc

1. 下载最新版本gcc

gcc当前最新版本是5.2,下面是我找到的两个下载镜像,下载速度还可以,都可以使用:

wget http://gcc.parentingamerica.com/releases/gcc-5.2.0/gcc-5.2.0.tar.bz2
// 或
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.2.0/gcc-5.2.0.tar.bz2

上面两个镜像分别位于加拿大和日本,由于gcc本身比较大(100MB左右),所以下载会需要一些时间。如果下载很慢,也可以到gcc官网查找较快的下载镜像。

2. 解压下载文件

gcc安装文件下载完成后,执行以下命令解压文件:

tar -xf gcc-5.2.0.tar.bz2

3. 下载gcc依赖文件和库

解压完成后,执行以下命令进入工作目录:

cd gcc-5.2.0

执行download_prerequisites脚本,下载gcc依赖文件和库:

./contrib/download_prerequisites

download_prerequisites 脚本,会下载安装gcc所需的mpfrgmpmpc文件。

4. 配置安装gcc

建立一个输出目录,编译时所有生成的中间文件都放到该目录下:

mkdir gcc-temp

工作目录切换至输出目录,并在其中执行配置和安装:

cd gcc-temp

执行configure配置安装文件:

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

配置完成后,执行以下命令,编译gcc

make

注意:编译gcc时间较长,我用了近三个小才编译完成。

编译完成后,安装gcc

make install

安装完成后还需要替换系统默认的gcc,执行以下命令,查找5.2版本的安装文件:

ls /usr/local/bin | grep gcc

输出如下:

gcc
gcc-ar
gcc-nm
gcc-ranlib
x86_64-unknown-linux-gnu-gcc
x86_64-unknown-linux-gnu-gcc-5.2.0 //就是这个
x86_64-unknown-linux-gnu-gcc-ar
x86_64-unknown-linux-gnu-gcc-nm
x86_64-unknown-linux-gnu-gcc-ranlib

执行升级命令:

/usr/sbin/update-alternatives --install  /usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc-5.2.0 52

5. 验证安装

执行以下命令查看gcc版本:

gcc -v

执行以下命令查看g++版本:

g++ -v

或使用which gcc查看gcc安装目录,在安装目录下执行-v命令。例如,安装目录为/usr/local/bin/gcc

/usr/local/bin/gcc -v

如果输出中有类似以下行,说明安装成功:

gcc 版本 5.2.0 (GCC) 

Linux升级安装GCC的更多相关文章

  1. Linux升级安装GCC G++ 6.2

    使用yum安装是不可能了,各大仓库也没有,只能自己编译安装了. 系统为CentOS 6.5,gcc为4.4.7 1 下载源代码包 当前最新版为6.2: wget http://ftp.gnu.org/ ...

  2. [Centos]升级安装GCC

    摘要 在尝试运行asp.net core站点的时候,发现了gcc包版本太低,造成一些错误.没办法只能升级gcc了. 升级 最新包:http://gcc.parentingamerica.com/rel ...

  3. 【转载·】Linux yum 安装 gcc 、gcc-c++

      2017年09月29日 22:45:54 上善若水 阅读数:6653更多 个人分类: Linux学习 所属专栏: Linux学习杂技   版权声明:本文为博主原创文章,未经博主允许不得转载. ht ...

  4. linux下安装gcc详解

    1.了解一下gcc 目前,GCC可以用来编译C/C++.FORTRAN.JAVA.OBJC.ADA等语言的程序,可根据需要选择安装支持的语言.我自己linux上是4.1.2版本,是不支持openMP的 ...

  5. (转载)RedHat Enterprise Linux 5 安装GCC

    注:在RedHat Enterprise Linux 5使用gcc编译第一个程序时,发现其gcc并未安装.在网上搜索看到这篇帖子.遂转到此处进行学习.感谢博客园中的“风尘孤客”的分享.@风尘孤客 Ab ...

  6. [原创实践]RedHat Enterprise Linux 5 安装GCC和redis

    Redis的安装需要使用GCC,Red Hat Enterprise 5默认是不安装gcc的,需要自己手动安装. 1:查看系统中是否有gcc gcc -v 查看本机linux版本 lsb_releas ...

  7. Linux——CentOS7安装gcc编译器详解 查看内核版本

    [root@localhost ~]# uname -a Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:3 ...

  8. Linux下安装gcc和g++

    以CentOS为例,安装后是没有C语言和C++编译环境的,需要手动安装,最简单的是用yum的方式安装,过程如下: 1.安装gcc yum install gcc 询问是否,按y键回车即可,或者 yum ...

  9. Linux——CentOS7安装gcc编译器详解

    使用yum安装gcc 使用yum命令安装还是非常easy的. yum -y install gcc gcc-c++ kernel-devel //安装gcc.c++编译器以及内核文件 手动安装gcc ...

  10. Linux编译安装GCC

    1. 下载gcc安装包 网址:http://ftp.gnu.org/gnu/gcc/ ,下载对应的安装包,我选择gcc-5.5.0.tar.gz 2. 下载依赖库 一个是mpc,一个是gmp,一个是m ...

随机推荐

  1. 当MYSQL报错时

    输入mysqld  --console查看错误 针对error行进行排查

  2. OSIDP-进程描述和控制-03

    什么是进程 进程是由一组元素组成的实体,基本元素包括程序代码和与代码相关的数据集(set of data),另外还包括 标识符:一个进程用于和其他进程区分的唯一标识. 状态:进程所处的状态. 优先级: ...

  3. Delphi数据库备份

    此处代码只是测试代码,仅仅是测试 //环境:D7+SQL Server 2008 1 unit Unit1; 2 3 interface 4 5 uses 6 Windows, Messages, S ...

  4. nRF52832出现“APP_UART_COMMUNICATION_ERROR”的错误的问题

    在调试nRF52832的uart的过程中,发现调试信息会时不时打印"APP_UART_COMMUNICATION_ERROR"这个错误,看上去似乎毫无规律.查看SDK的相关说明,可 ...

  5. 介绍String、StringBuffer和StringBuilder

    1. String类:  位于java.lang包,早期版本JDK1.0,继承Object类,实现java.io.Serializable, Comparable<String>, Cha ...

  6. CH573 CH582 CH579蓝牙从机(peripheral)例程讲解四(蓝牙动态广播)

    动态广播有两种实现方式: 1.关闭广播,更改广播包数据,等待关闭上报状态后,开启广播. uint8_t initial_advertising_enable = FALSE; GAPRole_SetP ...

  7. mybatis-plus自动填充踩坑

    学习使用mybatis-plus的自动填充功能,对create_time和update_time做一个自动填充,期间碰到了一些问题,记录一下问题和相关代码 在实体类字段上增加注解@TableField ...

  8. DNS Capture: UDP, TCP, IP-Fragmentation, EDNS, ECS, Cookie

    EDNS 扩展实现"EDNS Client Subnet" (ECS) 和 DNS cookies.' 这里不讨论相关概念,实现如有疑问请查看: https://weberblog ...

  9. ECharts笔记--实现地图版的数据显示(存在bug/┭┮﹏┭┮/)

    相关描述 前几天实现了柱状图等图的数据可视化,现在就来接着实现一下"更加"形象的数据可视化吧! 具体实现如下 <%@ taglib prefix="c" ...

  10. 在jsp页面int和String类型的相互转换

    浅浅地来做一个对比吧! .java文件 int转成string类型:String s=String.valueOf(int m); String转成int类型:int m=Integer.parseI ...