https://blog.csdn.net/zhaomax/article/details/87807711

1、环境:arm架构的centos6.5系统服务器

2、查看当前的gcc版本:gcc  -v

[root@aarch64vm-centos74-011 ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/aarch64-redhat-linux/4.8.5/lto-wrapper
Target: aarch64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-aarch64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-aarch64-redhat-linux/cloog-install --enable-gnu-indirect-function --build=aarch64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) 
3、下载gcc 7.4.0的源码:https://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.gz

4、将源码上传至服务器然后解压

[root@aarch64vm-centos74-010 ~]# mkdir -p /usr/local/gcc
[root@aarch64vm-centos74-010 ~]# ls /usr/local/
bin  boost  cmake  doc  etc  games  gcc  include  lib  lib64  libexec  man  maven  mysql  sbin  share  src  tomcat
[root@aarch64vm-centos74-010 ~]# ls
anaconda-ks.cfg                boost_1_59_0.tar.gz  jdk1.8.0_161                           mysql-5.7.19.tar.gz  spark-1.6.1-bin-without-hadoop.tgz
apache-maven-3.3.9-bin.tar.gz  cmake-2.8.5.tar.gz   jdk-8u161-linux-arm64-vfp-hflt.tar.gz  scala-2.11.7.tgz     spark-2.1.0-bin-hadoop2.7.tgz
apache-tomcat-8.0.53.tar.gz    gcc-7.4.0.tar.gz     mysql-5.7.19                           scala-2.12.6.tgz
[root@aarch64vm-centos74-010 ~]# tar -xvf gcc-7.3.0.tar.gz -C /usr/local/gcc/
5、解压完成后,编译安装gcc源码

(1)进入gcc 7.3.0目录,运行 download_prerequisites 脚本 。

[root@aarch64vm-centos74-010 ~]# cd /usr/local/gcc/
[root@aarch64vm-centos74-010 gcc]# ls
gcc-7.3.0
[root@aarch64vm-centos74-010 gcc]# cd gcc-7.4.0/
[root@aarch64vm-centos74-010 gcc-7.4.0]# ls
ABOUT-NLS           config-ml.in  COPYING3         gnattools     libada        libffi       libitm         libstdc++-v3     lto-plugin          Makefile.in     NEWS
ChangeLog           config.rpath  COPYING3.LIB     gotools       libatomic     libgcc       libmpx         libtool-ldflags  ltoptions.m4        Makefile.tpl    README
ChangeLog.jit       config.sub    COPYING.LIB      include       libbacktrace  libgfortran  libobjc        libtool.m4       ltsugar.m4          MD5SUMS         symlink-tree
ChangeLog.tree-ssa  configure     COPYING.RUNTIME  INSTALL       libcc1        libgo        liboffloadmic  libvtv           ltversion.m4        missing         ylwrap
compile             configure.ac  depcomp          install-sh    libcilkrts    libgomp      libquadmath    ltgcc.m4         MAINTAINERS         mkdep           zlib
config              contrib       fixincludes      intl          libcpp        libhsail-rt  libsanitizer   ltmain.sh        maintainer-scripts  mkinstalldirs
config.guess        COPYING       gcc              LAST_UPDATED  libdecnumber  libiberty    libssp         lt~obsolete.m4   Makefile.def        move-if-change
[root@aarch64vm-centos74-010 gcc-7.4.0]# ./contrib/download_prerequisites
2018-07-18 16:06:03 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840] -> "./gmp-6.1.0.tar.bz2" [1]
2018-07-18 16:08:29 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 [1279284] -> "./mpfr-3.1.4.tar.bz2" [1]
2018-07-18 16:09:25 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925] -> "./mpc-1.0.3.tar.gz" [1]
2018-07-18 16:12:42 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2 [1626446] -> "./isl-0.16.1.tar.bz2" [1]
gmp-6.1.0.tar.bz2: OK
mpfr-3.1.4.tar.bz2: OK
mpc-1.0.3.tar.gz: OK
isl-0.16.1.tar.bz2: OK
All prerequisites downloaded successfully.
[root@aarch64vm-centos74-010 gcc-7.4.0]# 
(2)建立编译输出目录,将所有的中间文件都放到该目录中。

这里建目录的时候,在当前gcc解压目录下建,否则这里所有命令行的路径都要修改。

获取这四个包时,可能有错误,无法识别这个包的状态啥的,没事,删了再来一遍就行了。

[root@aarch64vm-centos74-010 gcc-7.4.0]# mkdir gcc-build-7.3.0
[root@aarch64vm-centos74-010 gcc-7.4.0]# cd gcc-build-7.3.0/
[root@aarch64vm-centos74-010 gcc-build-7.4.0]# cp ../gmp-6.1.0.tar.bz2 ./
[root@aarch64vm-centos74-010 gcc-build-7.4.0]# cp ../mpfr-3.1.4.tar.bz2 ./
[root@aarch64vm-centos74-010 gcc-build-7.4.0]# cp ../mpc-1.0.3.tar.gz ./
[root@aarch64vm-centos74-010 gcc-build-7.4.0]# cp ../isl-0.16.1.tar.bz2 ./
[root@aarch64vm-centos74-010 gcc-build-7.4.0]# ls
gmp-6.1.0.tar.bz2  isl-0.16.1.tar.bz2  mpc-1.0.3.tar.gz  mpfr-3.1.4.tar.bz2
[root@aarch64vm-centos74-010 gcc-build-7.4.0]# 
(3)配置 :

在当前目录执行,这个目录下  gcc-build-7.3.0

../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib 
         参数解释:

--enable-checking=release           //增加一些检查,也可以–disable-checking生成的编译器在编译过程中不做检查;

--enable-languages=c,c++          //让gcc支持的编程语言 ;

--disable-multilib               //取消多目标库编译(取消32位库编译)。

(4)make编译

当前目录执行:make  -j4

(编译时间较长,耐心等待!!!!!!!)

(5)卸载旧版本的gcc,安装gcc7.3.0

rpm -q gcc 
rpm -q gcc-c++

根据执行输出的包名执行

rpm -e [包名]

[root@localhost ~]# rpm -q gcc
gcc-4.8.5-28.el7_5.1.aarch64
[root@localhost ~]# rpm -q gcc-c++
gcc-c++-4.8.5-28.el7_5.1.aarch64
[root@localhost ~]# rpm -e gcc-c++-4.8.5-28.el7_5.1.aarch64
[root@localhost ~]# rpm -e gcc-4.8.5-28.el7_5.1.aarch64
进入make的gcc目录进行安装:make install -j8

(6)验证

[root@localhost ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/aarch64-unknown-linux-gnu/7.4.0/lto-wrapper
Target: aarch64-unknown-linux-gnu
Configured with: ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 7.4.0 (GCC) 
[root@localhost ~]# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/aarch64-unknown-linux-gnu/7.4.0/lto-wrapper
Target: aarch64-unknown-linux-gnu
Configured with: ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 7.4.0 (GCC) 
[root@localhost ~]# which gcc
/usr/local/bin/gcc
[root@localhost ~]# 
安装成功!!!

编译遇到问题遇到问题:

解决办法:

https://www.cnblogs.com/godfather007/p/10444270.html

算了,还是别升级了,还是升级centos吧,太难搞了

如何升级gcc的更多相关文章

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

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

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

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

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

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

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

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

  5. Centos7升级gcc学习笔记

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

  6. redhat下升级gcc编译器

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

  7. 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 ...

  8. 转载:Centos升级gcc

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

  9. 升级GCC以支持C++11

    本文主要介绍在Linux系统下,如何升级GCC以支持C++11.目前来看GCC是对C++11支持程度最高最多的编译器,但需要GCC4.8及以上版本.  本文使用操作系统:Centos 6.4 Desk ...

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

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

随机推荐

  1. Linux系统相关命令

    时间和日期 date cal 磁盘和目录空间 df du 进程信息 ps top kill 01. 时间和日期 序号 命令 作用 01 date 查看系统时间 02 cal calendar 查看日历 ...

  2. Java开学测试感想

    开学第一堂课就是测试,测试暑假的自学成果,老师说试卷适当提高了难度,所以允许查书和使用网络查询,经过近三个钟头的努力奋斗和痛苦挣扎,我只完成了一小部分的代码,只有简单的set()get()函数,以及简 ...

  3. thinkcmf2.2 火狐浏览器图片上传以及谷歌图片上传打开稍慢

    对目录中 admin/themes/simplebootx/asset/plupload.html 文件 进行更改如下图:

  4. pyQt 流布局的一个例子

    瀑布流布局 from PyQt5.QtCore import QPoint, QRect, QSize, Qt from PyQt5.QtWidgets import (QApplication, Q ...

  5. 15)png图片旋转贴图

    1)基本代码展示  还是上一个那个总代码: #include<Windows.h> #include<gdiplus.h>//GDI+的头文件 using namespace ...

  6. RabbitMQ 整合 SpringCloud实战

    RabbitMQ 整合 SpringCloud实战RabbitMQ 整合 SpringCloud实战rabbitmq-common 子项目rabbitmq-springcloud-consumer 子 ...

  7. Django专题-ugettext_lazy

    标准翻译 使用函数 ugettext() 来指定一个翻译字符串. 作为惯例,使用短别名 _ 来引入这个函数以节省键入时间. 在下面这个例子中,文本 "Welcome to my site&q ...

  8. 1027A. Palindromic Twist#变形回文串

    题目内容:http://codeforces.com/contest/1027/problem/A 题目解析:输入T组字符串,每个字符串都必须改变一次,每个字母改变的规则是变成相邻的字母,字母a只能变 ...

  9. js变量的相关要点

    如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量. JavaScript 变量生命周期在它声明时初始化. 局部变量在函数执行完毕后销毁. 全局变量在页面关闭后销毁.

  10. Python list 字符串 注册 登录

    #list #列表 python中 数组.array等都用列表 list表示#创建一个liststu = ['xiaoming','xiaoli','xiaohuang','alex','lily', ...