当前位置:   article > 正文

CentOS7.9 上 GCC4.8.5 升级到10.4.0实践_gcc 4.8.5

gcc 4.8.5

导读

有时候操作系统自带或着 YUM 源安装的 GCC 版本不能满足我们的需求,需要我们自己安装所需的版本。本文给大家分享一下 GCC 升级的操作过程。笔者操作系统是CentOS7.9-x86_64,YUM 安装的 GCC 版本是4.8.5,现在要升级到10.4.0

Here we go!!! >>>


一、源码包准备

由于官方GNU网站下载慢,我们改用阿里云,命令如下:

wget https://mirrors.aliyun.com/gnu/gcc/gcc-10.4.0/gcc-10.4.0.tar.gz
  • 1

附:官网源码下载链接 http://ftp.gnu.org/gnu/gcc/

下载完后,我们解压:

tar -zxvf gcc-10.4.0.tar.gz -C /usr/local/src
  • 1

进入源码目录:

cd /usr/local/src/gcc-10.4.0/
  • 1

二、GCC依赖包

在 GCC 源码目录下,执行以下命令进行检查安装:

./contrib/download_prerequisites 
  • 1

执行结果:

2023-06-22 23:26:16 URL:http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840/2383840] -> “./gmp-6.1.0.tar.bz2” [1]
2023-06-22 23:27:39 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.6.tar.bz2 [1287202/1287202] -> “./mpfr-3.1.6.tar.bz2” [1]
2023-06-22 23:27:49 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925/669925] -> “./mpc-1.0.3.tar.gz” [1]
2023-06-22 23:28:40 URL:http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 [1658291/1658291] -> “./isl-0.18.tar.bz2” [1]
gmp-6.1.0.tar.bz2: OK
mpfr-3.1.6.tar.bz2: OK
mpc-1.0.3.tar.gz: OK
isl-0.18.tar.bz2: OK
All prerequisites downloaded successfully.

看到这个结果,四个OK就可以了。

三、配置编译

执行以下命令:

../configure --prefix=/usr/local/gcc-10.4.0/ --mandir=/usr/share/man --infodir=/usr/share/info --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++,lto --enable-plugin \
--enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --disable-multilib
  • 1
  • 2
  • 3
  • 4

说明:

注意最后使用的是--disable-multilib,如果想编译32位的可以使用--enable-multilib,这样可能会安装很慢。

四、编译安装

目录/usr/local/src/gcc-10.4.0/build/下执行编译命令:

make -j$(nproc)
  • 1

说明:

  1. 整个编译过程,根据你的机器配置,可能要等十几分钟到一个小时不等;
  2. “$(nproc)”为当前服务器每颗物理 CPU 中的核心数,可以根据实际需要填入数值,如:-j4。

安装:

make install -j$(nproc)
  • 1

五、替换默认GCC

建议先卸载原有默认安装的GCC4.8.5,命令如下:

yum -y remove gcc gcc-c++
  • 1

如果不卸载,需要执行以下命令做个备份:

mv /usr/bin/gcc /usr/bin/gcc485.bak
mv /usr/bin/g++ /usr/bin/g++485.bak
mv /usr/bin/gcov /usr/bin/gcov485.bak
mv /usr/bin/c++ /usr/bin/c++485.bak
mv /usr/bin/cc /usr/bin/cc485.bak
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

使用update-alternatives来创建软连接

update-alternatives --install /usr/bin/gcc gcc /usr/local/gcc-10.4.0/bin/gcc 100 \
--slave /usr/bin/g++ g++ /usr/local/gcc-10.4.0/bin/g++ \
--slave /usr/bin/gcov gcov /usr/local/gcc-10.4.0/bin/gcov \
--slave /usr/bin/c++ c++ /usr/local/gcc-10.4.0/bin/c++ \
--slave /usr/bin/cc cc /usr/local/gcc-10.4.0/bin/cc \
--slave /usr/lib64/libstdc++.so.6 libstdc++.so /usr/local/gcc-10.4.0/lib64/libstdc++.so.6.0.28
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

说明:使用“update-alternatives”易于管理多个版本的软连接,可以在多个版本的GCC之间来回切换。

六、检查

执行以下命令检查一下安装的GCC版本:

gcc --version
  • 1

结果:
gcc (GCC) 10.4.0
Copyright © 2020 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.

可以看出成功升级到 10.4.0 了!


<<< There you go!!!

总结

GCC的升级并不很复杂,要处理好原有GCC,别与新的GCC版本混在一起。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/624022
推荐阅读
相关标签
  

闽ICP备14008679号