CentOS 離線安裝gcc
折騰了一天,功夫不負有心人,終于整出來了,還是很激動的呵呵。廢話就不多說了,直接進入正題。
首先,在CentOS下安裝gcc4.8.2需要先安裝GMP,MPFR 和 MPC 三個包。
安裝包下載地址
從http://gcc.gnu.org/下載gcc安裝包 gcc-4.8.2.tar.gz
從ftp://ftp.gnu.org/gnu/gmp/ 下載GMP安裝包 gmp-5.1.3 .tar.bz2
從http://ftp.gnu.org/gnu/mpfr/ 下載MPFR安裝包 mpfr-3.1.2.tar.gz
從http://www.cise.ufl.edu/mirrors/GNU/pub/gnu/mpc 下載MPC安裝包 mpc-1.0.1.tar.gz
安裝步驟如下:
把GMP,MPFR 和 MPC 三個包分別解壓到單獨的文件中。
安裝gmp
1
2
3
4
|
[root@liuyanmin ~] # cd gmp-5.1.3 [root@liuyanmin gmp-5.1.3] # ./configure [root@liuyanmin gmp-5.1.3] # make [root@liuyanmin gmp-5.1.3] # make check |
這一步是必要的,用來查看有沒有文件不匹配或缺失,在最后提示,到時注意看有沒有Erro之類的提示,如果沒有說明安裝正常了. 本人安裝過程中沒有出現錯誤, 如果網友編譯過程中出了問題記得告訴我.
1
|
[root@liuyanmin gmp-5.1.3] # make install |
安裝編譯后的軟件,完成了安裝過程
有必要說明程序的頭文件(.h)和庫文件(lib*)的位置,本次安裝會安裝在 /usr/local/include 和 /usr/local/lib . 這個對后面安裝mpfr很有作用.
安裝mpfr
1
2
3
4
|
[root@liuyanmin ~] # cd mpfr-3.1.2 [root@liuyanmin mpfr-3.1.2] # ./configure --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib [root@liuyanmin mpfr-3.1.2] # make [root@liuyanmin mpfr-3.1.2] # make check |
在每步操作中一定要看看有沒有錯誤,本人編譯時沒有錯誤。
1
|
[root@liuyanmin gmp-5.1.3] # make install |
安裝MPC
1
2
3
4
5
|
[root@liuyanmin ~] # cd mpc-1.0.1 [root@liuyanmin mpc-1.0.1] # ./configure [root@liuyanmin mpc-1.0.1] # make [root@liuyanmin mpc-1.0.1] # make check [root@liuyanmin mpc-1.0.1] # make install |
上邊安裝成功后,還要配置lib目錄,因為gcc編譯時需要
1
|
[root@liuyanmin mpc-1.0.1] # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib |
這次就可以安裝gcc了
創建gcc安裝目錄/usr/gcc482
解壓gcc4.8.2并進入解壓后的目錄,打開命令終端,執行
1
2
3
4
|
[root@liuyanmin gcc4.8.2] # . /configure --prefix= /usr/gcc482 -- enable -threads=posix --disable-checking --disable-multilib -- enable -languages=c,c++ [root@liuyanmin gcc4.8.2] # make [root@liuyanmin gcc4.8.2] # make install |
現在gcc4.8.2安裝完成了,但是gcc4.8.2的環境變量還沒有設置,系統中使用的還是舊版的gcc。
剛剛我們把gcc4.8.2安裝在/usr/gcc482下,如果不知道的話可以通過下邊這步查找一下。
確定新安裝的GCC的路徑,可以先updatedb,然后locate gcc-4.8 |tail找一下。
查看gcc4.8.2信息如下
1
|
ls /usr/gcc482/bin | grep gcc |
設置使用新版的gcc4.8.2的方法,我現在有兩種。
方法一:
添加gcc4.8.2到可選項:
1
|
update-alternatives -- install /usr/bin/gcc gcc /usr/gcc482/bin/i686-pc-Linux-gnu-gcc 40 |
倒數第三個參數是名字,倒數第二個參數為新GCC路徑,最后一個參數40為優先級,設大一些之后就自動使用新版了
這是我從網上找到的方法,可我試了,但gcc --v時顯示的還是舊版本update-alternatives --display gcc 又顯示正確,試想gcc482我們是安裝了,可它的執行路徑和lib并沒有在系統中設置,而gcc --v肯定會從執行路徑中尋找,因此它顯示的結果是舊版的gcc又很正常了,對于這種做法目前我也很疑惑,哪位知道失敗原因的,希望各位大蝦多多指教啊!
方法二:
這種方法很簡單,設置軟鏈接即可
1
2
3
4
5
|
[root@liuym usr] # mkdir /usr/gcc447backup/ [root@liuym usr] # mv /usr/bin/{gcc,g++} /usr/gcc447backup [root@liuym usr] # ln -s /usr/gcc482/bin/gcc /usr/bin/gcc [root@liuym usr] # ln -s /usr/gcc482/bin/g++ /usr/bin/g++ [root@liuym usr] # gcc -v |
使用內建 specs。
1
2
|
COLLECT_GCC=gcc COLLECT_LTO_WRAPPER= /usr/gcc482/libexec/gcc/i686-pc-linux-gnu/4 .8.2 /lto-wrapper |
目標:i686-pc-linux-gnu
配置為
1
2
|
:. /configure --prefix= /usr/gcc482 -- enable -threads=posix --disable-checking --disable-multilib -- enable -languages=c,c++ |
線程模型:posix
gcc 版本 4.8.2 (GCC)
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://blog.csdn.net/windows_nt/article/details/21240843