linux CentOS6.8編譯安裝GCC-6.3.0 升級(jí)GCC
技術(shù)支持服務(wù)電話(huà):15308000360 【7x24提供運(yùn)維服務(wù),解決各類(lèi)系統(tǒng)/軟硬件疑難技術(shù)問(wèn)題】
記錄編譯GCC 6.3.0時(shí)遇到的問(wèn)題和解決方法,以備日后查詢(xún)...
若此篇文章還不能解決您的問(wèn)題,請(qǐng)聯(lián)系QQ:38585404 (有償技術(shù)支持)
平時(shí)使用的服務(wù)器是CentOS6,自帶的gcc編譯器還是多年前發(fā)布的版本,很多新版本的軟件都不支持,因?yàn)椴幌肷?jí)操作系統(tǒng),只好自己下載源碼編譯。
安裝過(guò)程挺無(wú)語(yǔ)的,重復(fù)了很多次,只好記錄下來(lái)...
安裝依賴(lài)庫(kù)
GCC依賴(lài)于gmp 4.2+, mpfr 2.4+和mpc 0.8+,這里直接下載安裝最新的版本。
安裝gmp 6.1.2
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz tar xvf gmp-6.1.2.tar.xz cd gmp-6.1.2 ./configure --prefix=/usr/local/gmp make && make install安裝mpfr 3.1.5 mpfr依賴(lài)于gmp
wget http://www.mpfr.org/mpfr-current/mpfr-3.1.5.tar.gz tar xvf mpfr-3.1.5.tar.gz cd mpfr-3.1.5 ./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp make && make install安裝mpc 1.0.3 mpc依賴(lài)于gmp和mpfr
wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz tar xvf mpc-1.0.3.tar.gz cd mpc-1.0.3 ./configure --prefix=/usr/local/mpc --with-gmp=/usr/local/gmp -with-mpfr=/usr/local/mpfr make && make install安裝GCC 6.3.0
wget ftp://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.gz tar xvf gcc-6.3.0.tar.gz cd gcc-6.3.0 ./configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc make -j8 make install安裝過(guò)程中可能會(huì)出現(xiàn):
“checking for suffix of object files... configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details. make[2]: *** [configure-stage1-target-libgcc] Error 1 make[2]: Leaving directory `/tmp/gcc-6.3.0' make[1]: *** [stage1-bubble] Error 2 make[1]: Leaving directory `/tmp/gcc-6.3.0' make: *** [bootstrap] Error 2解決方法:
yum install libgcc.i686頭一次我也看到這個(gè),執(zhí)行后去編譯還是出錯(cuò),在網(wǎng)上找到這個(gè)方法,雖然安裝后沒(méi)什么用,但是還是安裝上吧。
實(shí)際解決辦法:編輯變量,把我們安裝的gmp,mpfr,mpc加進(jìn)去
vi /etc/ld.so.conf添加部分:
/usr/local/lib #這個(gè)是默認(rèn)系統(tǒng)的變量 /usr/local/gmp/lib /usr/local/mpfr/lib /usr/local/mpc/lib /usr/local/mysql/lib #我服務(wù)器上安裝了MySQL 所以這里是MySQL的變量 /usr/local/openssl/lib #openssl變量添加保存后記得更新動(dòng)態(tài)庫(kù)的緩存:
ldconfig -v更新后再去重新編譯安裝。
相信到這里你才真正成功編譯安裝完成
備份系統(tǒng)默認(rèn)的gcc版本
mv /usr/bin/gcc /usr/bin/gcc-bak mv /usr/bin/g++ /usr/bin/g++-bak mv /usr/bin/c++ /usr/bin/c++-bak創(chuàng)建新的gcc軟連接
ln -s /usr/local/gcc/bin/gcc /usr/bin/gcc ln -s /usr/local/gcc/bin/c++ /usr/bin/c++ ln -s /usr/local/gcc/bin/g++ /usr/bin/g++ ln -s /usr/local/gcc/lib64/libstdc++.so.6.0.22 /usr/lib64/libstdc++.so.6查看gcc版本:
gcc --version
還有一種方法(直接替換現(xiàn)有版本):
安裝gmp 6.1.2
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz tar xvf gmp-6.1.2.tar.xz cd gmp-6.1.2 ./configure make && make install安裝mpfr 3.1.5 mpfr依賴(lài)于gmp
wget http://www.mpfr.org/mpfr-current/mpfr-3.1.5.tar.gz tar xvf mpfr-3.1.5.tar.gz cd mpfr-3.1.5 ./configure --with-gmp-include=/usr/local/include \ --with-gmp-lib=/usr/local/lib make && make install安裝mpc 1.0.3 mpc依賴(lài)于gmp和mpfr
wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz tar xvf mpc-1.0.3.tar.gz cd mpc-1.0.3 ./configure --with-mpfr-include=/usr/local/include \ --with-mpfr-lib=/usr/local/lib \ --with-gmp-include=/usr/local/include \ --with-gmp-lib=/usr/local/lib make && make install配置環(huán)境變量:
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64/:$LD_LIBRARY_PATH export C_INCLUDE_PATH=/usr/local/include/:$C_INCLUDE_PATH export CPLUS_INCLUDE_PATH=/usr/local/include/:$CPLUS_INCLUDE_PATH更新動(dòng)態(tài)庫(kù)的緩存:
ldconfig -v編譯安裝GCC(先安裝完依賴(lài)包c(diǎn)loog,gmp,isl,mpc,mpfr):
wget ftp://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.gz tar xvf gcc-6.3.0.tar.gz cd gcc-6.3.0 ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib make -j4 make install查看gcc版本:
gcc --version