所需軟件:
1.? ? gmp-4.3.2.tar.bz2
2.? ? mpc-0.8.1.tar.gz
3.? ? mpfr-2.4.2.tar.gz
4.? ? gcc-4.8.2.tar.gz
安裝步驟
1.? 解壓上述四個壓縮文件,進行源碼安裝
2.? 分別對gmp,mpfr,mpc執行命令(有序安裝)
? ? ? ./configure; make; make install
3. 添加環境變量
? ? ?export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
3.? cd gcc-4.8.2,執行如下命令
? ? ? ? ./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
? ? ? ? make -j4 (注:此過程非常耗時)
? ? ? ? make install
安裝驗證
1.? 查看安裝后gcc版本
? ? ? ? gcc -v?
主要解決問題
1.? 編譯安裝某些軟件包時提示編譯錯誤,例如:在線安裝R包-caret,xgboost,離線拷貝的xgboost包不能用等
相關內容
1.? ? 解決類似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的問題
原因分析:源碼編譯升級安裝了gcc后,編譯程序或運行其它程序時,有時會出現類似/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found的問題。這是因為升級gcc時,生成的動態庫沒有替換老版本gcc的動態庫導致
解決方法:
1.? ? 查看本機gcc動態庫:
? ? ? strings /usr/lib64/libstdc++.so.6 | grep GLIBC
2.? ? 在編譯目錄找到新生成動態鏈接庫
find ./ -name "libstdc++.so*"
3.? ? 拷貝及創建軟連接
cp ./stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.18 /usr/lib64
cd /usr/lib64
mv libstdc++.so.6?libstdc++.so.6.old
ln -s libstdc++.so.6.0.18 libstdc++.so.6
4.? ? 驗證動態庫更新成功
strings /usr/lib64/libstdc++.so.6 | grep GLIBC