亞馬遜EC2自帶的g++是4.8,比較老的版本,許多新的代碼都編譯不了。因此需要升級g++。
升級方法如下:
1、安裝依賴
sudo yum install libmpc-devel mpfr-devel gmp-devel
2、獲得源碼
以獲得5.4.0的源碼爲例
cd /tmp
curl -o "gcc-5.4.0.tar.gz" https://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz
tar -xvzf gcc-5.4.0.tar.gz
如果你想獲得其他版本,可以去這個網站https://ftp.gnu.org/gnu/gcc查看,然後修改版本號就行,比如將5.4.0修改爲5.5.0
3、配置和編譯
./configure --with-system-zlib --disable-multilib --enable-languages=c,c++
make -j8
4、安裝
sudo make install
上面就是安裝完成了,可以使用
g++ -v
查看當前使用的g++版本,如果沒有變成你想要的版本,那是因爲軟鏈接的問題。
首先使用
which g++
查看當前使用g++的具體路徑,很有可能給出的路徑是/usr/bin/g++
實際上,你剛剛安裝的g++是在/usr/local/bin
中的,而使用ll /usr/bin/g++
會發現這是個軟鏈接,並且指向的位置並不是咱們剛剛安裝的g++,所以我們只要將這個軟件刪除,重新建一個指向咱們新安裝的g++即可。具體:
cd /usr/bin
sudo rm g++
ln -s /usr/local/bin/g++ g++
此時再使用g++ -v
就發現使用的是咱們剛剛安裝的版本了。
同樣的,使用相同的方法修改gcc。