Linux系統(tǒng)自帶GCC源中g(shù)cc版本太低咏删,推薦手動(dòng)安裝gcc8.3.0
手動(dòng)安裝gcc8.3.0之前需要先確保安裝gcc環(huán)境依賴(lài)GMP 4.2+ 、 MPFR 2.3.1+ 拣凹、 MPC 0.8.0+森爽,否則會(huì)報(bào)出以下錯(cuò)誤
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify their locations.
如果報(bào)錯(cuò):
error while loading shared libraries: libmpfr.so.6: cannot open shared object file:
No such file or directory
解決方案參考:
參考1
參考2
我們?cè)趍pfr4.0.2已經(jīng)下了動(dòng)態(tài)庫(kù),在 /usr/local/mpfr-4.0.2 路徑下的lib文件夾中嚣镜。
將這里面的 libmpfr.so.6.0.2 移動(dòng)到 /usr/lib 下爬迟。
vi /etc/ld.so.conf
#添加庫(kù)的路徑include /usr/local/lib/
然后終端命令行執(zhí)行ldconfig
,再重新編譯菊匿。
安裝GMP 6.1.2
注:有時(shí)候沒(méi)有權(quán)限需要手動(dòng)下載時(shí)付呕,直接復(fù)制wget后的鏈接在瀏覽器打開(kāi)即可
下載GMP安裝包
wget http://mirror.hust.edu.cn/gnu/gmp/gmp-6.1.2.tar.xz
解壓GMP安裝包
tar -Jxf gmp-6.1.2.tar.xz
創(chuàng)建GMP安裝路徑
mkdir -p /usr/local/gmp-6.1.2
配置安裝文件
cd gmp-6.1.2
./configure --prefix=/usr/local/gmp-6.1.2
編譯源碼
make
安裝
make install
安裝MPFR4.0.2
下載MPFR 安裝包
wget http://mirror.hust.edu.cn/gnu/mpfr/mpfr-4.0.2.tar.xz
解壓MPFR安裝包
tar -Jxf mpfr-4.0.2.tar.xz
創(chuàng)建MPFR安裝路徑
mkdir -p /usr/local/mpfr-4.0.2
配置安裝文件
cd mpfr-4.0.2
./configure --prefix=/usr/local/mpfr-4.0.2 --with-gmp=/usr/local/gmp-6.1.2
編譯源碼
make
安裝
make install
安裝MPC1.1.0
下載MPC 安裝包
wget http://mirror.hust.edu.cn/gnu/mpc/mpc-1.1.0.tar.gz
解壓MPC安裝包
tar -zxf mpc-1.1.0.tar.gz
創(chuàng)建MPC安裝路徑
mkdir -p /usr/local/mpc-1.1.0
配置安裝文件
cd mpc-1.1.0
./configure --prefix=/usr/local/mpc-1.1.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2
編譯源碼
make
安裝
make install
上述全部安裝完成后计福,安裝GCC8.3.0
下載gcc安裝包
wget mirror.hust.edu.cn/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz
解壓gcc安裝包
tar -zxf gcc-8.3.0.tar.gz
創(chuàng)建gcc安裝路徑
mkdir -p /usr/local/gcc-8.3.0
配置安裝文件
cd gcc-8.3.0
后面的--with-gmp, --with-mpfr and/or --with-mpc選項(xiàng)一定要是相應(yīng)安裝的路徑,否則會(huì)報(bào)出和上邊同樣的錯(cuò)誤
./configure --prefix=/usr/local/gcc-8.3.0 --disable-multilib --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.2 --with-mpc=/usr/local/mpc-1.1.0
編譯
make
make完成后徽职,make install
make install
ln -s /usr/local/gcc-8.3.0 /usr/local/gcc
配置環(huán)境變量
export PATH=/usr/local/gcc/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/gcc/lib64:/usr/local/gmp/lib:/usr/local/mpfr/lib:/usr/local/mpc/lib:$LD_LIBRARY_PATH
export MANPATH=/usr/local/gcc/share/man:$MANPATH
查看gcc版本象颖,判斷gcc是否安裝成功
gcc --version
make 過(guò)程需要3個(gè)小時(shí)左右,make install過(guò)程需要一個(gè)小時(shí)左右姆钉,安心等待即可
設(shè)置配置文件(原文鏈接)
設(shè)置centos環(huán)境變量说订,可以用export
命令,也可以通過(guò)修改文件形式實(shí)現(xiàn)潮瓶,本文以lavavel需要設(shè)置環(huán)境變量為例陶冷,將 /root/.config/composer/vendor/bin 路徑加到 PATH
一、臨時(shí)生效
export PATH=$PATH:/root/.config/composer/vendor/bin1
使用 export 設(shè)置的變量毯辅,只對(duì)當(dāng)前終端 Shell 有效埂伦,也就是說(shuō)如果新打開(kāi)一個(gè)終端,那這個(gè) export 設(shè)置的變量在新終端中是無(wú)法讀取到的悉罕。適合設(shè)置一些臨時(shí)變量赤屋。
二、通過(guò)修改配置文件
首先是設(shè)置全局環(huán)境變量壁袄,對(duì)所有用戶都會(huì)生效:
1类早、/etc/profile: 此文件為系統(tǒng)的每個(gè)用戶設(shè)置環(huán)境信息。當(dāng)用戶登錄時(shí)嗜逻,該文件被執(zhí)行一次涩僻,并從 /etc/profile.d 目錄的配置文件中搜集shell 的設(shè)置。一般用于設(shè)置所有用戶使用的全局變量栈顷。 2逆日、/etc/bashrc: 當(dāng) bash shell 被打開(kāi)時(shí),該文件被讀取萄凤。也就是說(shuō)室抽,每次新打開(kāi)一個(gè)終端 shell,該文件就會(huì)被讀取靡努。
- ~/.bash_profile 或 ~/.profile: 只對(duì)單個(gè)用戶生效坪圾,當(dāng)用戶登錄時(shí)該文件僅執(zhí)行一次。用戶可使用該文件添加自己使用的 shell 變量信息惑朦。另外在不同的LINUX操作系統(tǒng)下兽泄,這個(gè)文件可能是不同的,可能是 ~/.bash_profile漾月, ~/.bash_login 或 ~/.profile 其中的一種或幾種病梢,如果存在幾種的話,那么執(zhí)行的順序便是:~/.bash_profile梁肿、 ~/.bash_login蜓陌、 ~/.profile觅彰。比如 Ubuntu 系統(tǒng)一般是 ~/.profile 文件。
- ~/.bashrc: 只對(duì)單個(gè)用戶生效护奈,當(dāng)?shù)卿浺约懊看未蜷_(kāi)新的 shell 時(shí)缔莲,該文件被讀取。
此外霉旗,修改 /etc/environment 這個(gè)文件也能實(shí)現(xiàn)環(huán)境變量的設(shè)置。 /etc/environment是設(shè)置整個(gè)系統(tǒng)的環(huán)境蛀骇,而/etc/profile是設(shè)置所有用戶的環(huán)境厌秒,前者與登錄用戶無(wú)關(guān),后者與登錄用戶有關(guān)擅憔。 注:系統(tǒng)是先執(zhí)行/etc/environment鸵闪,再執(zhí)行/etc/profile
以修改/etc/profile 為例:
PATH="$PATH:/root/.config/composer/vendor/bin"
export PATH12
執(zhí)行 source /etc/profile1
使其立即生效。 如果想多加個(gè)路徑y(tǒng)ourpath1暑诸,在將“:yourpath1” 加載path后面蚌讼,如:
PATH=”$PATH:/root/.config/composer/vendor/bin:yourpath1"