centos6升级GCC版本到4.8.5

本人centos6需要使用gcc4.8.5编译openssl 1.1.1
下面列出升级GCC4.8.5的方法,亲测可用.

Step 1 安装依赖

yum install -y gcc texinfo-tex flex zip libgcc glibc-devel gcc-c++ gcc
yum install -y gmp-devel mpfr-devel libmpc-devel

Step 2 编译前准备

wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gz
tar zxvf ./gcc-4.8.5.tar.gz && cd  gcc-4.8.5
./contrib/download_prerequisites

Step 3 创建一个供编译后的程序文件存放目录并编译安装(耗时1小时左右)

mkdir /usr/src/gcc-make
cd /usr/src/gcc-make/
/root/gcc-4.8.5/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make && make install
gcc -v #检测版本

Step 4 替换系统低版本gcc

mv /usr/bin/c++ /usr/bin/c++.bak
ln -s /usr/local/bin/c++ /usr/bin/c++
mv /usr/bin/g++ /usr/bin/g++.bak
ln -s /usr/local/bin/g++ /usr/bin/g++
mv /usr/bin/gcc /usr/bin/gcc.bak 
ln -s /usr/local/bin/gcc /usr/bin/gcc

Step 5 替换系统gcc动态库
用以下命令检查当前gcc动态库
strings /usr/lib/libstdc++.so.6 | grep GLIBC
查找编译gcc时生成的最新动态库
find / -name "libstdc++.so*"
首行列出新版的gcc动态链接库位置
/usr/local/lib/libstdc++.so.6.0.19

将上面的最新动态库libstdc++.so.6.0.19重新建立软连接
#64位系统为目录为/usr/lib64/注意替换

mv /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.6.bak
ln -s /usr/local/lib/libstdc++.so.6.0.19 /usr/lib/libstdc++.so.6

Step 6 清理源文件
安装完成后可以删除 /usr/src/gcc-make/ ,占用1.7G空间;/root/gcc-4.8.5/ 占用700M ,浪费空间

update20201225: 使用软件源安装gcc,快速简单

a. 安装scl源


yum install centos-release-scl scl-utils-build

b. 列出scl可用开发工具包


yum list all --enablerepo='centos-sclo-rh' | grep "devtoolset-"

c. 安装gcc工具包(编译工具包括gcc, gcc-c++, gdb)


yum install -y devtoolset-9-toolchain #目前最新支持到gcc9.3.1
scl enable devtoolset-9 bash

d. 支持重启使用gcc9.3.1


echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile

e. 查看gcc版本


gcc --version

参考来源
https://www.jianshu.com/p/588fa1c02772

此处评论已关闭