前言
之前讲过一次关于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上网下载这几个包:
- ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2
- http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2
- http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz
然后解压并移动到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