下面的可以在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.dwget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repoyum --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