利用yum升级Centos6的gcc版本,使其支持C++11

下面的可以在centos6下工作,centos7下有问题。可能是因为centos下的scl我是拷贝的文件,没有完全验证centos6下肯定没问题。

https://my.oschina.net/u/583362/blog/682123 和https://www.quyu.net/info/876.html

拷贝其关键内容就是:

1.使用 redhat developer toolset 1.1 的repo,安装GCC

cd /etc/yum.repos.d

wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo

yum --enablerepo=testing-devtools-2-centos-6 install devtoolset-2-gcc devtoolset-2-gcc-c++

2. 替换系统中原来的GCC

通过通过第一步会把 GCC 安装到以下目录:

/opt/rh/devtoolset-2/root/usr/bin

接下来需要修改系统的配置,使默认的 gcc 和 g++ 命令使用的是新安装的版本。

ln -s /opt/rh/devtoolset-2/root/usr/bin/* /usr/local/bin/
hash -r


编译时,提示错误“Error: expecting string instruction after `rep'”,这样解决:yum install devtoolset-2-binutils-devel

开头提到的另一个网页,可以安装gcc5.2版本。摘录如下:

gcc 4.8 安装

curl -Lks http://www.hop5.in/yum/el6/hop5.repo > /etc/yum.repos.d/hop5.repo

yum install gcc gcc-g++

gcc --version

gcc 4.9 安装

yum install centos-release-scl

yum install devtoolset-3-toolchain -y

scl enable devtoolset-3 bash

gcc --version

gcc 5.2 安装

yum install centos-release-scl

yum install devtoolset-4-toolchain -y

scl enable devtoolset-4 bash

gcc --version

gcc 6 安装

yum install centos-release-scl

yum install devtoolset-6-toolchain -y

scl enable devtoolset-6 bash

gcc --version

scl enable devtoolset-3 bash只是临时覆盖系统原有的GCC引用,如果想永久覆盖,可在root/.bashrc文件中添加source /opt/rh/devtoolset-3/enable

同样不要忘了: yum -y install devtoolset-<n>-binutils-devel, <n>是 2,3,4.

目前没有devtoolset-5-toolchain,但有devtoolset-6-toolchain

centos7 下可以直接yum安装:

sudo yum install centos-release-scl -y

sudo yum install devtoolset-6 -y

2020年可以安装 devtoolset-9

更改默认gcc版本

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6.3 40 
sudo update-alternatives --config gcc