centos升级java_Centos7 从源码安装/升级GCC(超详细)

本文档详细介绍了如何在CentOS7.6上通过源码升级GCC到8.3.0。首先,检查当前GCC版本,然后通过yum安装依赖包,下载并安装GCC最新依赖,如gmp、mpfr、mpc和isl。接着,创建编译目录,配置并编译GCC,最后更新环境变量使新版本生效。整个过程包括依赖安装、配置选项、编译和环境变量设置等关键步骤。
摘要由CSDN通过智能技术生成

Centos7.6 默认安装的gcc版本为4.8.5,可通过命令gcc -v查看,如果需要使用gcc的最新特性,则需要源码安装gcc最新版。

e24f022a029ad607bede4a177695c9d9.png

gcc -v输出的信息,包括生成makefile时候的configure,在步骤5可以参考该配置。

使用内建 specs。

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper

目标:x86_64-redhat-linux

配置为:../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

线程模型:posix

gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)

1.yum安装依赖包

# yum install -y gcc gcc-c++ gcc-gnat libgcc libgcc.i686 glibc-devel bison flex texinfo build-essential zlib-devel

温馨提示:若出现,致命错误: zlib.h:没有那个文件或目录。

这个错误是因为zlib包没有安装,安装后问题即可解决。

但有一点请注意安装命令是:yum install zlib-devel,

而非yum install zlib。

下载GCC最新依赖:

$ ./contrib/download_prerequisites

037cba5d502bb829864e4f28d27313c5.png

2.安装最新依赖到/usr/local目录下:

在普通用户权限$下即可:

cd gmp-6.1.0

./configure --prefix=/usr/local/gmp-6.1.0

make && make install

cd mpfr-3.1.4

./configure --prefix=/usr/local/mpfr-3.1.4 --with-gmp=/usr/local/gmp-6.1.0

make && make install

cd mpc-1.0.3

./configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4

make && make install

cd isl-0.18/

./configure --prefix=/usr/local/isl-0.18 --with-gmp-prefix=/usr/local/gmp-6.1.0

9b28599c000cb97c8126efd1ab9d373f.png

在超级用户root权限#下:

# make && make install

注意:

上面安装isl-0.18包,不能像其他的将gmp包的路径配置到--with-gmp,而是配置到--with-gmp-prefix下,不然会报错:

876ee2b14718ccc1eda52e034fc6de35.png

8a913f40bfe891f3cdb083bcef156b57.png

可通过查看isl-0.18源代码的configure文件找到原因:

33887ce0732379b88743f17193fd4abf.png

60738521777e2534576236578fb492e9.png

3.将gcc最新依赖包添加到动态链接库:

# vi /etc/ld.so.conf

330a07eaf00d27c980765c95c930b5c7.png

重新搜索当前系统上所有库文件搜索路径下的库文件,并生成缓存

# ldconfig -v

4.退到gcc-8.3.0目录,新建一个编译目录build,用于存放编译生成的文件:

b021e96add43b377857df364d9edb5bd.png

$ mkdir build && cd build

5.进入编译目录build后,通过gcc-8.3.0文件夹下的configure脚本生成makefile文件。

此时的设置可以参考前面的gcc-4.8.5的配置,-prefix配置make install的目录(安装目录),--enable-languages中去掉java(不支持),仅支持本机x64配置--disable-multilib(需要支持x86就去掉)。

$ ../configure --prefix=/usr/local/gcc-8.3.0 --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4 --with-mpc=/usr/local/mpc-1.0.3 --with-isl=/usr/local/isl-0.18 --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++,fortran,ada,go,lto --enable-plugin --enable-initfini-array --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux --disable-multilib

配置完成后,进行make和make install。

# make && make install

Tips:默认编译比较慢,可以通过-j参数来增加参加编译的cpu核心数N(双核cpu:make -j 2),make -j N,此处,N小于或等于每颗物理CPU中的核心数。

6.配置环境变量

# vi /etc/profile

在profile文件结尾加入一行:

export PATH=/usr/local/gcc-8.3.0/bin:$PATH

31de9d4c3b47e7032b9289859000ae32.png

使其立即生效# source /etc/profile

7.使用gcc -v检查gcc版本,是否为gcc-8.3.0

ec23e91864b9232266a24c1629366335.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值