鲲鹏服务器 centos 升级gcc + 安装qemu

https://bbs.huaweicloud.com/forum/thread-22665-1-1.html#

 

去官网下载http://ftp.gnu.org/gnu/gcc/下载GCC 5.4.0的源码压缩包解压安装

       解压gcc-5.4.0.tar.gz



[root@localhost qemu5.1]# mkdir gcc-5.4
[root@localhost qemu5.1]#  tar  -zxvf   gcc-5.4.0.tar.gz    -C  gcc-5.4

下载安装依赖,下载安装gcc需要的三个依赖

 

[root@localhost qemu5.1]#  yum -y install bzip2 wget 

 

[root@localhost gcc-5.4]# cd gcc-5.4.0/
[root@localhost gcc-5.4.0]# ls
ABOUT-NLS           config        configure.ac  COPYING.RUNTIME  include       libatomic     libffi       libitm         libsanitizer     ltgcc.m4        ltversion.m4        MD5SUMS         README
boehm-gc            config.guess  contrib       depcomp          INSTALL       libbacktrace  libgcc       libjava        libssp           ltmain.sh       MAINTAINERS         missing         symlink-tree
ChangeLog           config-ml.in  COPYING       fixincludes      install-sh    libcc1        libgfortran  libmpx         libstdc++-v3     lt~obsolete.m4  maintainer-scripts  mkdep           ylwrap
ChangeLog.jit       config.rpath  COPYING3      gcc              intl          libcilkrts    libgo        libobjc        libtool-ldflags  lto-plugin      Makefile.def        mkinstalldirs   zlib
ChangeLog.tree-ssa  config.sub    COPYING3.LIB  gnattools        LAST_UPDATED  libcpp        libgomp      liboffloadmic  libtool.m4       ltoptions.m4    Makefile.in         move-if-change
compile             configure     COPYING.LIB   gotools          libada        libdecnumber  libiberty    libquadmath    libvtv           ltsugar.m4      Makefile.tpl        NEWS
[root@localhost gcc-5.4.0]# ./contrib/download_prerequisites
--2020-12-16 22:49:00--  ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
           => ‘mpfr-2.4.2.tar.bz2’
Resolving gcc.gnu.org (gcc.gnu.org)... 8.43.85.97, 2620:52:3:1:0:246e:9693:128c
Connecting to gcc.gnu.org (gcc.gnu.org)|8.43.85.97|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pub/gcc/infrastructure ... done.
==> SIZE mpfr-2.4.2.tar.bz2 ... 1077886
==> PASV ... done.    ==> RETR mpfr-2.4.2.tar.bz2 ... done.
Length: 1077886 (1.0M) (unauthoritative)

 

下载编译所需的依赖包:

这个步骤有两种方式完成:

a) 如果Linux有网络连接,直接这样:

cd gcc-4.8.1

./contrib/download_prerequisites

cd ..

b) 如果Linux没有网络连接(我主机和虚拟机是Host-only,不能联网,所以另外想办法),则用Windows上网下载这几个包:

ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2

http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2

http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz

有人问,一定要下载几个版本吗?下载最新的版本行不行?我没试过,也不知道,我是按照gcc-4.8.1/contrib/download_prerequisites脚本里面的版本下载的。既然里面已经说了这几个版本,那我就严格按照它的要求来做。

然后解压并移动到gcc-4.8.1下面:

tar -xjf gmp-4.3.2.tar.bz2

tar -xjf mpfr-2.4.2.tar.bz2

tar -xzf mpc-0.8.1.tar.gz

mv gmp-4.3.2 gcc-4.8.1/gmp

mv mpfr-2.4.2 gcc-4.8.1/mpfr

mv mpc-0.8.1 gcc-4.8.1/mpc

这样的做法好处是,不用单独编译gmp、mpfr和mpc三个包,放在gcc源码下面一起编译(事实上这也是gcc-4.8.1/contrib/download_prerequisites脚本的做法,个人感觉更简洁些)。

 

 

 

[root@localhost gcc-build-5.4.0]# find  /usr/local/ -name gcc
/usr/local/bin/gcc
/usr/local/lib/gcc
/usr/local/libexec/gcc
[root@localhost gcc-build-5.4.0]# /usr/local/bin/gcc --version
gcc (GCC) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[root@localhost gcc-build-5.4.0]# /usr/local/bin/g++ --version
g++ (GCC) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[root@localhost gcc-build-5.4.0]# 

 

 

[root@localhost gcc-build-5.4.0]# mv /usr/bin/g++ /usr/bin/g++.4.8
[root@localhost gcc-build-5.4.0]# mv /usr/bin/gcc /usr/bin/gcc.4.8
[root@localhost gcc-build-5.4.0]# ln -s  /usr/local/bin/gcc  /usr/bin/gcc
 
[root@localhost gcc-build-5.4.0]# ln -s  /usr/local/bin/g++  /usr/bin/g++
[root@localhost gcc-build-5.4.0]# gcc -version
gcc: error: unrecognized command line option ‘-version’
gcc: fatal error: no input files
compilation terminated.
[root@localhost gcc-build-5.4.0]# gcc --version
gcc (GCC) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 
[root@localhost gcc-build-5.4.0]# g++ --version
g++ (GCC) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[root@localhost gcc-build-5.4.0]# 

 

 

centots下安装qemu5.1

   yum -y install  libcap-ng-devel 
 
 
   
   yum -y install  librbd\*

 

 

1. 简介

GCC 编译器是 Linux 下默认的 C/C++ 编译器,大部分 Linux 发行版中都是默认安装的。鲲鹏服务器CentOS7.5中默认GCC版本为4.8.5,很多情况下需要升级。本指南描述了GCC升级到5.4.0的过程,可供相关人士参考。

类别:编译器

2. 部署环境

Packet Name

Version

CentOS

CentOS  7.5 with ARM

GCC

5.4.0

7.3.0

3. 安装部署

    3.1 编译升级GCC

由于服务器Centos7.5默认安装的GCC版本较低,在某些场景下需要进行升级GCC,版本信息如下:

[root@ecs-arm-felix-free01   ~]# gcc --version

gcc   (GCC) 4.8.5

去官网下载http://ftp.gnu.org/gnu/gcc/下载GCC 5.4.0的源码压缩包解压安装

       解压gcc-5.4.0.tar.gz

[root@ecs-arm-felix-free01   ~]# tar -xvf gcc-5.4.0.tar.gz

下载安装依赖,下载安装gcc需要的三个依赖

[root@ecs-arm-felix-free01   ~]# yum -y install bzip2 wget    # 下载依赖需要使用把bzip2和wget两个命令

[root@ecs-arm-felix-free01   ~]# cd gcc-5.4.0/

[root@ecs-arm-felix-free01   ~]# ./contrib/download_prerequisites  #   在解压根目录中执行

依赖下载完成后,编译更新gcc版本

[root@ecs-arm-felix-free01   ~]# cd ../ && mkdir gcc-build-5.4.0 && cd gcc-build-5.4.0    #执行命令前位于gcc-5.4.0目录下

#   执行configure

[root@ecs-arm-felix-free01   ~]# ../gcc-5.4.0/configure --enable-checking=release --enable-languages=c,c++   --disable-multilib

#   执行编译,make时间1-2小时或更久

[root@ecs-arm-felix-free01   ~]# make -j8    #-j8意味8核并行编译;

[root@ecs-arm-felix-free01   ~]# make install    #执行安装

备注:如果执行过程遇到configure: error: C++ preprocessor "/lib/cpp" fails sanity check,执行

[root@ecs-arm-felix-free01   ~]# yum install glibc-headers

[root@ecs-arm-felix-free01   ~]# yum install gcc-c++

验证是否更新生效

[root@ecs-arm-felix-free01   ~]# gcc -version

gcc   (GCC) 5.4.0

生成的动态库替换老版本gcc的动态库。

[root@ecs-arm-felix-free01   ~]# cp /usr/local/lib64/libstdc++.so.6.0.21 /lib64

[root@ecs-arm-felix-free01   ~]# cd /lib64 & cp libstdc++.so.6 libstdc++.so.6.old

[root@ecs-arm-felix-free01   ~]# ln -s libstdc++.so.6.0.21 libstdc++.so.6

#执行命令查看最新GLIBCXX_3.4.21

[root@ecs-arm-felix-free01   ~]# strings /lib64/libstdc++.so.6 | grep GLIBC

3.2 参考信息


[1] GCC升级版本:https://www.linuxidc.com/Linux/2018-11/155395.htm

posted on 2020-12-17 12:00  tycoon3  阅读(843)  评论(0编辑  收藏  举报

导航