gcc 编译安装 12.4.0

  • 编译安装gcc之前,需要安装五个依赖:m4、gmp、mpfr、mpc、isl
  • 依赖包的安装顺序:m4独立安装,gmp依赖m4,mpfr依赖于gmp,mpc依赖于gmp和mpfr,isl依赖gmp
  • 依赖包的安装版本:GMP版本 >= 4.2,MPFR版本 >= 2.4.0,MPC版本 >= 0.8.0
  • 依赖包的下载地址:https://gcc.gnu.org/pub/gcc/infrastructure/
  • 依赖包m4下载地址:https://ftp.gnu.org/gnu/m4/
  • 执行 ./contrib/download_prerequisites 会自动下载安装gcc所需的依赖,但国内网速太慢,并不推荐

安装 gcc-12.4.0

  • 第1步,安装gcc编译器以支持c++11,否则后面会报错 configure: error: *** A compiler with support for C++11 language features is required.
yum install -y gcc-c++ gcc
yum install -y bzip2            #.执行tar -jxvf xxx.tar.bz2会用到
  • 第2步,安装 m4-1.4.19
curl -sL http://iso.sqlfans.cn/gcc/m4-1.4.19.tar.gz -o /opt/m4-1.4.19.tar.gz
tar -zxvf /opt/m4-1.4.19.tar.gz -C /opt/
cd /opt/m4-1.4.19
./configure --prefix=/usr/local/m4/1.4.19
make -j4
make install

#.声明环境变量,否则编译gmp报错:configure: error: No usable m4 in $PATH or /usr/5bin
export PATH=/usr/local/m4/1.4.19/bin:$PATH
  • 第3步,安装 gmp-6.2.1
curl -sL http://iso.sqlfans.cn/gcc/gmp-6.2.1.tar.bz2 -o /opt/gmp-6.2.1.tar.bz2
tar -jxvf /opt/gmp-6.2.1.tar.bz2 -C /opt/
cd /opt/gmp-6.2.1
./configure --prefix=/usr/local/gmp/6.2.1
make -j4
make check
make install
  • 第4步,安装 mpfr-4.1.0
curl -sL http://iso.sqlfans.cn/gcc/mpfr-4.1.0.tar.bz2 -o /opt/mpfr-4.1.0.tar.bz2
tar -jxvf /opt/mpfr-4.1.0.tar.bz2 -C /opt/
cd /opt/mpfr-4.1.0
./configure --prefix=/usr/local/mpfr/4.1.0 --with-gmp=/usr/local/gmp/6.2.1
make -j4
make check
make install
  • 第5步,安装 mpc-1.2.1
curl -sL http://iso.sqlfans.cn/gcc/mpc-1.2.1.tar.gz -o /opt/mpc-1.2.1.tar.gz
tar -zxvf /opt/mpc-1.2.1.tar.gz -C /opt/
cd /opt/mpc-1.2.1
./configure --prefix=/usr/local/mpc/1.2.1 --with-gmp=/usr/local/gmp/6.2.1 --with-mpfr=/usr/local/mpfr/4.1.0
make -j4
make check
make install
  • 第6步,安装 isl-0.24
curl -sL http://iso.sqlfans.cn/gcc/isl-0.24.tar.bz2 -o /opt/isl-0.24.tar.bz2
tar -jxvf /opt/isl-0.24.tar.bz2 -C /opt/
cd /opt/isl-0.24
./configure --prefix=/usr/local/isl/0.24 --with-gmp-prefix=/usr/local/gmp/6.2.1
make -j4
make check
make install
  • 第7步,安装 gcc-12.4.0(注:4C16G虚机执行make -j4耗时57分)
#.更新链接动态库,否则执行configure会找不到动态库
ln -s /usr/local/isl/0.24/lib/libisl.so.23 /usr/lib64/libisl.so.23
ln -s /usr/local/mpfr/4.1.0/lib/libmpfr.so.6 /usr/lib64/libmpfr.so.6

curl -sL http://iso.sqlfans.cn/gcc/gcc-12.4.0.tar.gz -o /opt/gcc-12.4.0.tar.gz
tar -zxvf /opt/gcc-12.4.0.tar.gz -C /opt/ > /dev/null
cd /opt/gcc-12.4.0
./configure --prefix=/usr/local/gcc/12.4.0 \
  --enable-threads=posix --enable-languages=c,c++,fortran --disable-checking --disable-multilib --disable-multilib --disable-libcc1cd \
  --with-gmp=/usr/local/gmp/6.2.1 --with-mpfr=/usr/local/mpfr/4.1.0 --with-mpc=/usr/local/mpc/1.2.1 --with-isl=/usr/local/isl/0.24
make -j4
make install
  • 第8步,配置环境变量
echo 'export PATH=/usr/local/gcc/12.4.0/bin:$PATH' > /etc/profile.d/gcc.sh
source /etc/profile.d/gcc.sh
gcc --version
Copyright © www.sqlfans.cn 2024 All Right Reserved更新时间: 2025-01-06 23:25:18

results matching ""

    No results matching ""