CentOS 6&7 安装使用多个GCC版本(GCC4.9,GCC5.3,GCC6.2)

CentOS 作为企业级服务器操作系统被广泛使用,其中使用C++开发服务器应用又是常见的,可是CentOS本身自带的GCC版本更新缓慢,要想使用较新的GCC版本就是一个经常需要解决的问题,当然可以自行编译GCC源码,但是比较麻烦,而且很难做到多个GCC版本之间进行切换。


从CentOS6开始,CentOS自身提供了一种方式可以使用Scientific Linux distribution发行版的devtoolset-*来解决。具体使用方式如下:

1)安装scl发布源:yum install centos-release-scl-rh

2)安装GCC&GCC-C++:yum install devtoolset-3-gcc devtoolset-3-gcc-c++

这里面devtoolset-3是第3个版本,目前针对CentOS6&7支持3,4,6三个版本,分别对应GCC4.9,GCC5.3,GCC6.2,用户可以根据自己的需要选择安装哪一个版本,当然可以同时安装多个版本。


3)根据需要使用:source /opt/rh/devtoolset-3/enable 进行切换,这里面devtoolset-3可以根据你是安装3,4,6进行切换。这个切换原理也很简单,只是设置了一些环境变量。若要在启动的时候就生效,可以放置到~/.bashrc之中即可。


4)补充一下使用devtoolset-2(gcc 4.8.2)的方法:

(1)rpm --import http://linuxsoft.cern.ch/cern/slc6X/x86_64/RPM-GPG-KEY-cern

(2)wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo

(3)yum install devtoolset-2-toolchain

       yum install devtoolset-2-gcc  devtoolset-2-gcc-c++

(4)source /opt/rh/devtoolset-2/enable

测试发现当前命令似乎只对本次shell有效,所以可能需要把这条命令加入到~/.bashrc中
如果需要永久覆盖, 可以
echo "source /opt/rh/devtoolset-3/enable" >> /etc/bashrc
source /etc/bashrc
重新登陆terminal生效,发现gcc已经改变


继续安装gcc-5.3.1版本, 通过灵活切换是可行的
yum -y install devtoolset-4-gcc devtoolset-4-gcc-c++
source /opt/rh/devtoolset-4/enable


如果要切换到不同的版本,直接运行上面的命令就可以,十分方便。如果需要设置永久生效,直接在/etc/profile或/etc/bashrc中修改。
------------------------------------------------------------------------------
如果你要在开发程序中添加asan内存检测功能,可以继续安装libssan模块
yum -y install devtoolset-4-libasan-devel libssan
如果以前在devtoolset-3-gcc之前安装过libssan,这里就不需要安装了,但是devtoolset-4-libasan-devel必须要安装
否则编译就容易出现的报错


你可能感兴趣的:(CentOS 6&7 安装使用多个GCC版本(GCC4.9,GCC5.3,GCC6.2))