下面的可以在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 devtoolset-6 -y
更改默认gcc版本
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6.3 40
sudo update-alternatives --config gcc