剛剛gcc 7.1也出來了,想在使用熟悉的linux下試試,特記錄如下:
准備必要的系統環境:(升級系統到最新,安裝必要的工具)
pacman -Syyu #升級系統到最新
pacman -Q gcc gawk m4 binutils lzip #查看必備工具是否具備,沒有就安裝,我的缺少了lzip,安裝后,結果
gcc 6.3.1-2
gawk 4.1.4-2
m4 1.4.18-1
binutils 2.28.0-2
lzip 1.19-1
mkdir gcc_builder_7.1 && cd gcc_builder_7.1
# 下載三個必須的庫gmp、mpfr、mpc;根據依賴關系:mpfr依賴於gmp, mpc依賴於gmp和mpfr。 下載順序無關緊要,安裝的順序必須是先安裝gmp,再安裝mpfr,然后安裝mpc,最后安裝gcc,由於文件是相互依賴的,千萬不要弄錯順序。
#獲取必要的文件
# gmp
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.lz
# mpfr
wget http://www.mpfr.org/mpfr-current/mpfr-3.1.5.tar.xz
# mpc
wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
# gcc-7.1
wget http://mirrors.webhostinggeeks.com/gcc/releases/gcc-7.1/gcc-7.1.tar.bz2
#新建源碼解壓保存目錄,使用對應的工具解壓到對應的目錄,最好不要有版本號:
# 解壓 gmp
lzip -d gmp-6.1.2.tar.lz
tar -xvf gmp-6.1.2.tar && mv gmp-6.1.2 gmp
# 解壓mpfr
tar -Jxvf mpfr-3.1.5.tar.xz && mv mpfr-3.1.5 mpfr
# 解壓mpc
tar -zxvf mpc-1.0.3.tar.gz && mv mpc-1.0.3 mpc
# 解壓GCC
tar -jxvf gcc-7.1.tar.bz2 && mv gcc-7.1 gcc
# 編譯gmp庫,安裝到/usr/gcc_7_1目錄,以x86_64-linux-gnu內核
cd gmp #進入gmp源碼目錄
mkdir build && cd build #准備編譯目錄
../configure --prefix=/usr/gcc_7_1 --build=x86_64-linux-gnu #配置編譯選項
make -j4 #編譯
sudo make install #編譯安裝
# 編譯mpfr庫,安裝到/usr/gcc_7_1目錄,以x86_64-linux-gnu內核,以gmp庫
cd ../../mpfr #進入mpfr源碼目錄
mkdir build && cd build #准備編譯目錄
../configure --build=x86_64-linux-gnu --prefix=/usr/gcc_7_1 --with-gmp=/usr/gcc_7_1 #配置編譯選項
make -j4 #編譯
sudo make install #編譯安裝
# 編譯mpc庫,依賴gmp、mpfr,內核...
cd ../../mpc #進入mpc源碼目錄
mkdir build && cd build #准備編譯目錄
../configure --build=x86_64-linux-gnu --prefix=/usr/gcc_7_1 --with-gmp=/usr/gcc_7_1 --with-mpfr=/usr/gcc_7_1 #配置編譯選項
make -j4 #編譯
sudo make install #編譯安裝
#編譯GCC源碼
cd ../../ #進入gcc源碼目錄
mkdir build && cd build #准備編譯目錄
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/
export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu
export CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu
#下一行是配置編譯環境
../gcc/configure --build=x86_64-linux-gnu --prefix=/usr/gcc_7_1 --with-gmp=/usr/gcc_7_1 --with-mpfr=/usr/gcc_7_1 --with-mpc=/usr/gcc_7_1 --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib --program-suffix=-7.1
make -j4 #編譯
#make -jN,可以調整n的數值,例如:make -j4,如果編譯出錯,執行make clean后直接make,只是編譯過程會比較慢。
sudo ln -s /usr/lib/x86_64-linux-gnu/ /usr/lib64 #鏈接庫文件
sudo make install #編譯安裝
export PATH=/usr/gcc_7_1/bin:$PATH
#將gcc 7.1添加到系統路徑,或者直接編輯home目錄下.bashrc文件,在最后添加 export PATH=/usr/gcc_7_1/bin:$PATH
# 調用編譯器測試
gcc-7.1 -v #結果如下:
使用內建 specs。
COLLECT_GCC=gcc-7.1
COLLECT_LTO_WRAPPER=/usr/gcc_7_1/libexec/gcc/x86_64-linux-gnu/7.1.0/lto-wrapper
目標:x86_64-linux-gnu
配置為:../gcc/configure --build=x86_64-linux-gnu --prefix=/usr/gcc_7_1 --with-gmp=/usr/gcc_7_1 --with-mpfr=/usr/gcc_7_1 --with-mpc=/usr/gcc_7_1 --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib --program-suffix=-7.1
線程模型:posix
gcc 版本 7.1.0 (GCC)
#就表明安裝成功