手動編譯升級
在安裝之前請確保自己的linux系統(tǒng)有足夠的虛擬內(nèi)存(建議1G)
增加swap虛擬內(nèi)存
- 獲取安裝包并解壓
地址是:
http://ftp.gnu.org/gnu/gcc/
https://mirrors.ustc.edu.cn/gnu/gcc/(國內(nèi))
解壓縮
tar -jxvf gcc-9.1.0.tar.bz2
或則
tar -zxvf gcc-9.1.0.tar.gz
這兩個版本選擇下載時的版本進行不同的解壓操作
2.下載供編譯需求的依賴項
編譯gcc 需要
[GMP](https://gmplib.org/)嘱么,
[MPFR](http://www.mpfr.org/),
[MPC](http://www.multiprecision.org/)
我們可以執(zhí)行安裝包里面的腳本去安裝
cd gcc-9.1.0
./contrib/download_prerequisites
如果不成功可以手動下載依賴
yum install gmp-devel // 編譯依賴此庫
yum install mpfr-devel // 編譯依賴此庫
yum install libmpc-devel // 編譯依賴此庫
當然以上庫可以在ftp://gcc.gnu.org/pub/gcc/infrastructure/下載
isl 選擇安裝(我執(zhí)行./contrib/download_prerequisites成功流礁,沒有安裝這個文件)
下載isl-0.18.tar.bz2 // yum 沒有這個庫源碼安裝
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2
tar -jxvf isl-0.18.tar.bz2
cd isl-0.18
./configure
make
make install
- 建立一個目錄供編譯出的文件存放
mkdir gcc-build-9
cd gcc-build-9
4.編譯安裝
yum groupinstall "Development Tools"
yum install glibc-static libstdc++-static(這兩個是必要的開發(fā)環(huán)境)
../configure --prefix=/usr/local/gcc9 --enable-languages=c,c++,go --disable-multilib // 指定gcc9安裝地址,指定所需安裝語言冈敛,不支持32位
make -j4 (-j4選項是make對多核處理器的優(yōu)化,如果不成功請使用 make酝润,相關優(yōu)化選項可以移步至參考文獻[2]踊淳。建議不要使用make -j來編譯,雖然可以縮短編譯時間义郑,但極大可能會編譯失敗)
make install((安裝需要root權限!))
5.刪除舊的gcc和g++
rm -f /usr/bin/gcc
rm -f /usr/bin/g++
- 鏈接新的gcc和g++
ln -s /usr/local/gcc9/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc9/bin/g++ /usr/bin/g++
7.更新libstdc++
通過 ls -lrt /usr/lib64/libstdc++.so.6 可以看到不是鏈接我們最新的libstdc++.so.6.0.26
刪除
rm -f /usr/lib64/libstdc++.so.6
更新
ln -s /usr/local/lib64/libstdc++.so.6.0.26 /usr/lib64/libstdc++.so.6
8.測試
#include <iostream>
#include <algorithm>
#include <string_view>
int main()
{
std::string str = " trim me";
std::string_view v = str;
v.remove_prefix(std::min(v.find_first_not_of(" "), v.size()));
std::cout << "String: '" << str << "'\n"
<< "View : '" << v << "'\n";
}
編譯
g++ -o test.out test.cpp -std=c++17
運行
./ test.out
輸出
String: ' trim me'
View : 'trim me'
gdb 記得升級
原文鏈接:
CentOS 6.6 升級GCC G++ (當前最新版本為v6.1.0) (完整)
Centos7升級gcc學習筆記
利用yum 升級(目前能升級到7.3)
yum install centos-release-scl -y
yum install devtoolset-7 -y
scl enable devtoolset-7 bash
gcc --version
注釋:
在centos的devtoolset庫中 最新的為 devtoolset-7,所以我們以后可以自己改數(shù)字安裝最新的版本
scl enable devtoolset-7 bash 如果使用的是zsh則使用
scl enable devtoolset-7 zsh
如果不知道什么是zsh那么默認的就好了
附上:centos 鏡像地址