Centos7升级Gcc

前言

之前讲过一次关于Centos7的GCC版本的升级,这里,主要使用源码对GCC进行升级,即在安装完成后不用再切换GCC环境。

1. 切换到root属性

su
yum -y install wget

2. 下载GCC源码

以下命令会放在 usr/local/ 下面

wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.gz

3. 解压压缩包

cd /usr/local/
tar -zxvf gcc-4.9.2.tar.gz

4. 下载编译安装的依赖包

4.1 假设有网的时候

cd gcc-4.9.2
./contrib/download_prerequisites

4.2 假设没网的情况下

如果Linux没有网络连接,则用Windows上网下载这几个包:

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

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.9.2/gmp
mv mpfr-2.4.2 gcc-4.9.2/mpfr
mv mpc-0.8.1 gcc-4.9.2/mpc

5. 编译安装GCC

yum install -y gcc-c++ glibc-static gcc
./configure --prefix=/usr/local/gcc --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
make
make install

编译参数说明

  • --prefix=/usr/local/ 指定安装路径
  • --enable-bootstrap 用第一次编译生成的程序进行第二次编译
  • --enable-checking=release 以软件发布版的标准来对编译时生成的代码进行一致性检查
  • --enable-languages=c,c++ 支持的高级语言类型和运行时库
  • --disable-multilib 如果你的操作系统是64位,要禁止生成32位代码

配置环境变量

1. 查看当前gcc版本

gcc -v
# gcc (GCC) 4.8.5 20120313 (Red Hat 4.8.5-16)

2. 编写环境变量的路径

vim /etc/profile.d/gcc.sh
# 输入:export PATH=/usr/local/gcc/bin:$PATH

3. 激活环境变量

source /etc/profile.d/gcc.sh
gcc -v
# gcc (GCC) 4.9.2

导出头文件

ln -sv /usr/local/gcc/include/ /usr/include/gcc

导出库文件

vim /etc/ld.so.conf.d/gcc.conf
# 添加:/usr/local/gcc/lib64
ldconfig -v
ldconfig -p |grep gcc

注意事项

如果您的程序之前跑的是一个gcc >= 4.9.2的环境,可以通过以下命令切换:

source /opt/rh/devtoolset-7/enable
# 或
source scl_source enable devtoolset-7