在CentOS 6.6 64bit上升級GCC到4.8.2版本
阿新 • • 發佈:2019-02-08
作業系統CentOS6.6 64bit上gcc原版本4.4.7,不能支援C++11的特性~,為了便於YouCompleteMe外掛,我希望升級到4.8.2。不能通過yum的方法升級,需要自己手動下載安裝包並編譯,下面假定都是以root使用者安裝。
一、升級過程
1.獲取gcc安裝包並解壓gcc官網http://ftp.gnu.org/gnu/gcc裡面有所有的gcc版本供下載,最新版本為5.3.0
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.gz
tar -zxvf gcc-4.8.2.tar.gz
2.下載供編譯需求的依賴項
這個神奇的指令碼檔案會幫我們下載、配置、安裝依賴庫,可以節約我們大量的時間和精力,我們可以直接開啟其原始碼看看。
它會下載指定的原始碼包並做軟連線。
cd gcc-4.8.2
./contrib/download_prerequisites
下面需要依次從原始碼安裝這幾個依賴庫
gmp,mpfr,mpc
3.建立一個目錄供編譯出的檔案存放
mkdir gcc-build-4.8.2
cd gcc-build-4.8.2
4. 生成Makefile檔案
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
5.編譯
make -j4
注意:此步驟非常耗時,普通PC花費半小時不稀奇,我的高配電腦只用了10分鐘左右
6.安裝
sudo make install
7.切換GCC到新版
確定新安裝的GCC的路徑,一般預設在/usr/local/bin下。可以先updatedb,然後再輸入
ls /usr/local/bin | grep gcc
update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc 40
8.確認當前版本已經切換為新版
gcc -v
g++ -v
注意需要重新開啟終端才能生效。
二、驗證安裝
嘗試寫一個C++11特性的程式段 tryCpp11.cc,使用了shared_ptr
//tryCpp11.cc
#include <iostream>
#include <memory>
int main()
{
std::shared_ptr<int> pInt(new int(5));
std::cout << *pInt << std::endl;
return 0;
}
驗證檔案:
g++ -std=c++11 -o tryCpp11 tryCpp11.cc
./tryCpp11
三、安裝中遇到的問題澄清
1.是否需要手動安裝依賴庫?
不需要,程式會內部自動處理,手動安裝反而後出錯。
2.安裝動態庫後,是否需要更新動態庫?
更不需要修改並更新/etc/ld.so.conf檔案之類的
3.如果編譯錯誤,不要make distclean之類的,直接重新解壓原始碼再來一遍
4.編譯過程中出現錯誤
configure: error: cannot compute suffix of object files: cannot compile
這是找不到依賴庫的位置
四、參考文獻
[1].http://www.linuxidc.com/Linux/2015-01/112595.htm 4.8.3版本
[2].http://blog.csdn.net/szq123456123/article/details/45170923 4.9.2版本
[3].http://www.mamicode.com/info-detail-550954.html 對排錯很有參考
[4].http://www.cnblogs.com/peterpanzsy/archive/2013/04/10/3006838.html 對排錯很有幫助,推薦