離線升級gcc至最新!目前是6.3
前言
由於一些工作需要最近需要移植程式到Linux下面,不得不說,這方面C++確實沒有Java這樣的語言爽,一次“編譯”跨平臺執行。
適用
並不適合所有的系統,目前已知。Windows下的ubuntu subSystem就不行。已經測試的是虛擬機器下SuSe11 sp3、Centos6.3。其他作業系統的使用者,可以嘗試,在該系統下測試。
準備:
為了防止官網一些東西過期,我準備了百度網盤。地址:
http://pan.baidu.com/s/1gfLxlw3
1.依賴環境:
gmp:ftp://ftp.gnu.org/gnu/gmp
mpfr:
mpc:http://www.cise.ufl.edu/mirrors/GNU/pub/gnu/mpc
把gmp、mpfr、mpc、gcc的包都解壓,然後按照以下步驟輸入:
安裝:
解壓GMP、mpfr、mp3解壓到單獨的資料夾中
A: 安裝gmp: cd gmp-6.1.2 ./configure make macke check //無error 成功 有必要說明程式的標頭檔案(.h)和庫檔案(lib*)的位置,本次安裝會安裝在 /usr/local/include 和 /usr/local/lib . 這個對後面安裝mpfr很有作用. B: 安裝mpfr cd mpfr-3.1.5 ./configure --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib make make check// 確認有無錯誤 make install C: 安裝MPC cd mpc-1.0.3 ./configure make make check make install D:配置lib目錄 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
安裝gcc
解壓gcc 並進入目錄
./configure –prefix=/usr/gcc482 –enable-threads=posix –disable-checking –disable-multilib –enable-languages=c,c++
make
make install
// 設定環境變數,以啟動gcc mkdir /usr/gcc447backup/ mv /usr/bin/{gcc,g++} /usr/gcc447backup ln -s /usr/gcc482/bin/gcc /usr/bin/gcc ln -s /usr/gcc482/bin/g++ /usr/bin/g++ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/gcc482/lib:/usr/gcc482/lib64 export LD_LIBRARY_PATH 查詢: find / -name "libstdc++.so*" 例項找到結果可能是如下,賦值到lib64下面 /home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 //最新動態庫 複製 cp /home/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /usr/lib64
mkdir /usr/gcc447backup/
mv /usr/bin/{gcc,g++} /usr/gcc447backup
ln -s /usr/gcc482/bin/gcc /usr/bin/gcc
ln -s /usr/gcc482/bin/g++ /usr/bin/g++
gcc -v
特別說明的是make過程十分長,我在虛擬機器跑了接近6個小時才安裝完成!
另外如果要使用Cmake的同學定義以下環境變數:
export CC=/usr/gcc482/bin/gcc
export CXX=/usr/gcc482/bin/g++
如果發現不能執行自己的當前目錄的so
新增:
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH