Linux超详细gcc升级全过程
作者:IT邦德 发布时间:2023-10-30 03:02:41
标签:Linux,升级,gcc
前言
c c++ 等等 需要这个编译器gcc,最近有DBA的朋友咨询RHEL7.6操作系统安装Mysql数据库时需要 高版本的GCC,研究了下发现坑不少,总结本文分享给大家
1.当前gcc版本
[root@rhel76 ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-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,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
从以上可以看出当前版本为4.8.5,本次我们升级到10.1.0
2.安装gcc
--下载地址:
https://mirrors.aliyun.com/gnu/gcc/gcc-10.1.0/
[root@rhel76 ~]# tar -vxf gcc-10.1.0.tar.gz
[root@rhel76 gcc-10.1.0]# mkdir build
[root@rhel76 gcc-10.1.0]# cd build/
[root@rhel76 build]# ../configure --prefix=/usr/local/gcc-10.1.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /usr/bin/sed
checking for gawk... gawk
checking for libatomic support... yes
checking for libitm support... yes
checking for libsanitizer support... yes
checking for libvtv support... yes
checking for libhsail-rt support... yes
checking for libphobos support... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ accepts -static-libstdc++ -static-libgcc... no
checking for gnatbind... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
checking for the correct version of gmp.h... no
configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations. Source code for these libraries can be found at
their respective hosting sites as well as at
https://gcc.gnu.org/pub/gcc/infrastructure/. See also
http://gcc.gnu.org/install/prerequisites.html for additional info. If
you obtained GMP, MPFR and/or MPC from a vendor distribution package,
make sure that you have installed both the libraries and the header
files. They may be located in separate packages.
从日志总可以看出有如下报错,故下面每个都安装
configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+.
3.gmp安装
[root@jeames007 ~]# tar -vxf gmp-5.0.1.tar.bz2
[root@jeames007 ~]# cd gmp-5.0.1/
[root@jeames007 gmp-5.0.1]# ./configure --prefix=/usr/local/gmp-5.0.1
[root@jeames007 gmp-5.0.1]# make
[root@jeames007 gmp-5.0.1]# make install
make[4]: Leaving directory `/root/gmp-5.0.1'
make[3]: Leaving directory `/root/gmp-5.0.1'
make[2]: Leaving directory `/root/gmp-5.0.1'
make[1]: Leaving directory `/root/gmp-5.0.1'
4.MPFR编译
[root@jeames007 ~]# tar -vxf mpfr-3.1.5.tar.xz
[root@jeames007 ~]# cd mpfr-3.1.5/
[root@jeames007 ~]#./configure --prefix=/usr/local/mpfr-3.1.5 --with-gmp=/usr/local/gmp-5.0.1
[root@jeames007 mpfr-3.1.5]# make
[root@jeames007 mpfr-3.1.5]# make install
5.MPC编译
[root@jeames007 ~]# tar -vxf mpc-1.0.1.tar.gz
[root@jeames007 ~]# cd mpc-1.0.1
[root@jeames007 ~]# ./configure --prefix=/usr/local/mpc-1.0.1 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5
[root@jeames007 mpc-1.0.1]# make
[root@jeames007 mpc-1.0.1]# make install
6.GCC 配置
[root@rhel76 ~]# cd gcc-10.1.0
[root@rhel76 gcc-10.1.0]# cd build/
../configure --prefix=/usr/local/gcc-10.1.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5 --with-mpc=/usr/local/mpc-1.0.1
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /usr/bin/sed
checking for gawk... gawk
checking for libatomic support... yes
checking for libitm support... yes
checking for libsanitizer support... yes
checking for libvtv support... yes
checking for libhsail-rt support... yes
checking for libphobos support... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ accepts -static-libstdc++ -static-libgcc... no
checking for gnatbind... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
checking for the correct version of gmp.h... yes
checking for the correct version of mpfr.h... buggy but acceptable
checking for the correct version of mpc.h... yes
checking for the correct version of the gmp/mpfr/mpc libraries... yes
checking for isl 0.15 or later... no
required isl version is 0.15 or later
*** This configuration is not supported in the following subdirectories:
gnattools gotools target-libada target-libhsail-rt target-libphobos target-zlib target-libbacktrace target-libgfortran target-libgo target-libffi target-libobjc target-liboffloadmic
(Any other directories should still work fine.)
checking for default BUILD_CONFIG... bootstrap-debug
checking for --enable-vtable-verify... no
checking for bison... bison -y
checking for bison... bison
checking for gm4... no
checking for gnum4... no
checking for m4... m4
checking for flex... flex
checking for flex... flex
checking for makeinfo... no
/root/gcc-10.1.0/missing: line 81: makeinfo: command not found
checking for expect... no
checking for runtest... no
checking for ar... ar
checking for as... as
checking for dlltool... no
checking for ld... ld
checking for lipo... no
checking for nm... nm
checking for ranlib... ranlib
checking for strip... strip
checking for windres... no
checking for windmc... no
checking for objcopy... objcopy
checking for objdump... objdump
checking for otool... no
checking for readelf... readelf
checking for cc... cc
checking for c++... c++
checking for gcc... gcc
checking for gfortran... gfortran
checking for gccgo... no
checking for gdc... no
checking for ar... no
checking for ar... ar
checking for as... no
checking for as... as
checking for dlltool... no
checking for dlltool... no
checking for ld... no
checking for ld... ld
checking for lipo... no
checking for lipo... no
checking for nm... no
checking for nm... nm
checking for objcopy... no
checking for objcopy... objcopy
checking for objdump... no
checking for objdump... objdump
checking for otool... no
checking for otool... no
checking for ranlib... no
checking for ranlib... ranlib
checking for readelf... no
checking for readelf... readelf
checking for strip... no
checking for strip... strip
checking for windres... no
checking for windres... no
checking for windmc... no
checking for windmc... no
checking where to find the target ar... host tool
checking where to find the target as... host tool
checking where to find the target cc... just compiled
checking where to find the target c++... just compiled
checking where to find the target c++ for libstdc++... just compiled
checking where to find the target dlltool... host tool
checking where to find the target gcc... just compiled
checking where to find the target gfortran... host tool
checking where to find the target gccgo... host tool
checking where to find the target gdc... host tool
checking where to find the target ld... host tool
checking where to find the target lipo... host tool
checking where to find the target nm... host tool
checking where to find the target objcopy... host tool
checking where to find the target objdump... host tool
checking where to find the target otool... host tool
checking where to find the target ranlib... host tool
checking where to find the target readelf... host tool
checking where to find the target strip... host tool
checking where to find the target windres... host tool
checking where to find the target windmc... host tool
checking whether to enable maintainer-specific portions of Makefiles... no
configure: creating ./config.status
config.status: creating Makefile
[root@jeames007 ~]# make -j4
make 时间很长,很长,耐心等待,本人编译了1个小时。所以有条件的话,在编译时,可以使用make -j8
[root@jeames007 build]# make install
此时GCC版本还未更新下,需要以下的操作
7.GCC版本更新
mv /usr/bin/gcc /usr/bin/gcc485
mv /usr/bin/g++ /usr/bin/g++485
mv /usr/bin/c++ /usr/bin/c++485
mv /usr/bin/cc /usr/bin/cc485
ln -s /usr/local/gcc-10.1.0/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-10.1.0/bin/g++ /usr/bin/g++
ln -s /usr/local/gcc-10.1.0/bin/c++ /usr/bin/c++
ln -s /usr/local/gcc-10.1.0/bin/gcc /usr/bin/cc
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
ln -s /usr/local/gcc-10.1.0/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6
脚本执行成功之后就可以查看当前使用的gcc版本了 查看的命令:gcc -v
[root@jeames007 ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc-10.1.0/libexec/gcc/x86_64-pc-linux-gnu/10.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure --prefix=/usr/local/gcc-10.1.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5 --with-mpc=/usr/local/mpc-1.0.1
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.1.0 (GCC)
来源:https://blog.csdn.net/weixin_41645135/article/details/121573475


猜你喜欢
- 什么东西造成文章既然也能成为网络营销之一的方法呢?这可能涉及了种种因素,当然文章里面具备最可能也包含性了就是搜索引擎优势(Search En
- Goolge这几天开始更新了,大部分网页的PR值都有了变化,排名也有了一定幅度的调整。突然想起上周SEO培训中一个学员提到的一个关于搜索引擎
- 我使用的VMware版本:VMware 15 Pro镜像:CentOS 8.1电脑配置需求:2 GB 及以上的RAM(官方推荐至少
- 网站推广,说简单点就是告诉网站目标群体,为什么要有这个网站,网站的内容是什么,她会给你带来什么好处。作为网站推广者,就必须知道:1、 目标群
- 在论坛更换域名后,由于地址发生了变化,导致一些还是保留原地址的链接发生错误,表现为图片不显示,附件不能下载等一些问题。解决这些问题的根本办法
- 为什么google adsence中文广告价格这么低?前段时间做了个英文站,没有什么流量,每天就有50ip的样子,一看google adse
- 在本周二召开的RSA国际安全会展上,微软公司发布了其新款身份信息管理软件,微软并表示他们正与德国政府合作研制一种电子身份证,这种电子身份证可
- 虽然Google的Blogspot在国内无法访问,但对于独立域名的英文博客来说,使用Blogger还是不错的选择,不用使用托管主机,这里就介
- UCenter Home是Comsenz公司发布的一款SNS建站系统,目前最新版本是1.5。在UCenter Home中全局动态,就是会在站
- 如何将自己的网站加入谷歌资讯索引中技术要求:文章的地址必须是独立的,静态的,并且除了日期外,必须包括至少三个数位;文章标题最好设置成H1,H
- 经常见到某些网站提供个人主页,显得很神气,其实你也可以开放你机器上的空间给别人,这很简单就能实现。只要你按照下面的提示对你的WWW服务器配置
- 这里,先介绍一个比较常规的欺骗案例吧。我在《常用在线支付方式对比:PayPal、信用卡和支票》这篇文章中指出,PayPal在收款上是重保护消
- 本文主要介绍了vmware Esxi 5.0 忘记密码重置的方法,分享给大家,具体如下:方法一、重新安装esxi,不要覆盖datastore
- 一、基于linux的Web服务器性能测试的重要性linux作为一种免费的开源操作系统,正越来越受到人们的重视。随着稳定的Linux 2.4内
- 都说艺术是相通的,杨帆非常赞同,每当我去研究seo的时候,总能找到玩音乐时候的影子,今天就和大家说一下
- 前日,山东冠县政府称关闭网吧系安民心举措,被质疑为公权滥用。昨日冠县有关部门表示,网吧被整顿有法可依。目前网吧恢复营业尚无时间表。冠县网吧被
- 对于大多数企业局域网来说,路由器已经成为正在使用之中的最重要的安全设备之一。一般来说,大多数网络都有一个主要的接入点。这就是通常与专用防火墙
- 本文介绍了20条简单有趣的技巧,让你告别以往费时费力的搜索习惯。从现在起,Tips你的“搜”能力吧!对上百万人而言,Google是一个每天都
- 为了给发布商提供更多的透明度以及控制网站上所展示的广告的权利,我们开发了广告查看中心,该功能将会在接下来的几个月中陆续推出。这个功能可以让您
- 1、勤奋:我是很建议这样做的,如果一件事你根本没花多少精力去做就成功了,那我只能说你是GOD,佩服!2、动脑:光有勤奋不够,必须在勤奋的基础