gcc-linux6.3,[环境配置]Ubuntu16.04下编译安装gcc6.3.0
上一篇的SVS要用gcc6.3編譯,否則結(jié)果不正確,本來以為gcc很好裝,結(jié)果發(fā)現(xiàn)用apt-get安裝gcc6只能安裝6.5版本,代碼作者奇特的要求只能用gcc6.3,沒辦法只能用源碼裝了,期間碰見了各種各樣的問題,特此記錄。
1.環(huán)境要求
安裝gcc之前要安裝gmp,mpfr,mpc,isl這幾個庫,并且要卸載舊的gcc,然而我們需要在最后安裝gcc之前再卸載舊的gcc,因為安裝必需的庫時需要舊的gcc。
2.安裝gmp
去官網(wǎng)下載最新的包,之后直接解壓到想要安裝的位置。安裝步驟如下
$ cd gmp-6.1.2/
$ mkdir build
$ cd build/
$ ../configure -prefix=/usr/local/gmp-6.1.2
$ make -j12
$ sudo make install
我們把gmp安裝在了/usr/local目錄下,使用參數(shù)-j12是可以調(diào)用多線程加速編譯的過程。
3.安裝mpfr
同樣是在官網(wǎng)下載最新的包,而后解壓,安裝步驟類似上一步。
$ cd mpfr-4.0.1/
$ mkdir build
$ cd build/
$ ../configure --prefix=/usr/local/mpfr-4.0.1 --with-gmp=/usr/local/gmp-6.1.2
$ make -j12
$ sudo make install
因為用到了上一步安裝的gmp,因此mpfr的安裝需放在gmp之后。
4.安裝mpc
步驟依舊同上,源碼在官網(wǎng)。
$ cd mpc-1.1.0/
$ mkdir build
$ cd build/
$ ../configure -prefix=/usr/local/mpc-1.1.0 -with-gmp=/usr/local/gmp-6.1.2 -with-mpfr=/usr/local/mpfr-4.0.1
$ make -j12
$ sudo make install
同時用到了gmp和mpfr。
5.安裝isl
其實這一步不是必需的,但是我在某一步被卡住,然后發(fā)現(xiàn)是用到了isl庫中的一個頭文件,因此才安裝這個庫。isl的官網(wǎng)沒有找到,但是有一個ftp上可以下載。ftp地址:ftp://gcc.gnu.org/pub/gcc/infrastructure/
$ cd isl-0.18/
$ mkdir build
$ cd build/
$ ../configure --prefix=/usr/local/isl-0.18 --with-gmp=/usr/local/gmp-6.1.2
$ make -j12
$ sudo make install
只用到了gmp。
6.安裝gcc6.3
終于到了我們的目標,gcc6.3,首先我們需要卸載舊的gcc
$ sudo update-alternatives --remove-all gcc
這一步會將gcc和g++相關(guān)卸載。接下來我們需要在環(huán)境變量里配置一下剛剛安裝的幾個庫。
$ gedit ~/.bashrc
然后在最后加一行
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-1.1.0/lib:/usr/local/gmp-6.1.2/lib:/usr/local/mpfr-4.0.1/lib:/usr/local/isl-0.18/lib:/usr/local/lib:/usr/lib/x86_64-linux-gnu
如果不進行上面一步的話,可能會出現(xiàn)如下的錯誤
checking for suffix of object files... configure: error: in '/home/manu/gcc/gcc/i686-pc-linux-gnu/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See 'config.log' for more details.
一般缺少庫都會產(chǎn)生這樣的錯誤,我們需要打開config.log進行具體查看。之前沒有安裝isl庫的時候就會在log文件中顯示出來,而終端并沒有顯示具體的error。
接下來就是編譯安裝gcc6.3,源碼在官網(wǎng)的鏡像里可以找到,隨便選一個ftp服務器,然后在releases分支里找到gcc6.3下載,之后解壓。
$ cd gcc-6.3.0/
$ mkdir build
$ cd build/
$ ../configure --prefix=/usr/local/gcc-6.3 --disable-multilib --with-system-zlib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.1 --with-mpc=/usr/local/mpc-1.1.0 --with-isl=/usr/local/isl-0.18
$ make -j12
$ sudo make install
如果你需要gcc編譯其他語言的話,可以在languages那里添加。make的過程非常漫長,就算我用了12個線程跑,也花了10分鐘左右。
因為我們刪除了gcc的鏈接,因此為了更方便地使用gcc,需要重新鏈接
$ cd /usr/bin
$ sudo ln -s /usr/local/gcc-6.3/bin/gcc gcc
$ sudo ln -s /usr/local/gcc-6.3/bin/g++ g++
最后檢查一下gcc的版本
$ gcc -v
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的gcc-linux6.3,[环境配置]Ubuntu16.04下编译安装gcc6.3.0的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哲学家就餐问题linux源代码,Linu
- 下一篇: 修改linux的shell限制,Ngin