Centos7源碼安裝兩個版本gcc
gcc編譯安裝前提是已安裝其它版本的gcc:yum install -y gcc gcc-c++
0.下載源碼包
官網下載或者國內鏡像:http://mirrors.nju.edu.cn/gnu/gcc/gcc-5.5.0/
1.解壓縮
tar -zxvf gcc-5.5.0.tar.gz
2.下載依賴包
cd gcc-5.5.0
./contrib/download_prerequisites
3.新建目錄
mkdir build
cd build
4.編譯+安裝
- --prefix:指定gcc安裝目錄,可以使用任意目錄,這里使用
/usr/local/gcc5
目錄 - make -j:多核安裝編譯,
- 例如在一台2核的機器上,可以使用
make -j4
, 最多允許4個編譯命令同時執行,可以更有效的利用CPU資源 - 並行的任務不宜太多,一般是CPU核心數的2倍
- 例如在一台2核的機器上,可以使用
../configure --prefix=/usr/local/gcc5 --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j
make install
5.之間已有低版本的gcc存在,先刪除已建的軟連接
rm -rf /usr/bin/gcc
rm -rf /usr/bin/g++
ln -s /usr/local/gcc5/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc5/bin/g++ /usr/bin/g++
6.查看新版本
gcc --version
7.替換老版本動態庫
運行程序時可能會出現/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.20' not found
,是因為升級安裝了gcc,生成的動態庫沒有替換老版本的gcc動態庫導致的。
找到在/usr/local/gcc5/lib64/
文件夾下
cp /usr/local/gcc5/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6.0.21
rm -f /usr/lib64/libstdc++.so.6
ln /usr/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6