一、环境
[root@ecs-e8c4-0001 gcc]# cat /etc/kylin-release
Kylin Linux Advanced Server release V10 (Tercel)
二、下载源码
wget https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz
//gcc ftp 地址:<https://ftp.gnu.org/gnu/gcc/>
三、下载依赖
[root@ecs-e8c4-0001 gcc]# tar zxf gcc-11.2.0.tar.gz
[root@ecs-e8c4-0001 gcc]# cd gcc-11.2.0
[root@ecs-e8c4-0001 gcc-11.2.0]# ./contrib/download_prerequisites
2021-12-15 10:43:38 URL:<http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2> [2383840/2383840] -> "gmp-6.1.0.tar.bz2" [1]
2021-12-15 10:43:40 URL:<http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.6.tar.bz2> [1287202/1287202] -> "mpfr-3.1.6.tar.bz2" [1]
2021-12-15 10:43:41 URL:<http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz> [669925/669925] -> "mpc-1.0.3.tar.gz" [1]
2021-12-15 10:44:49 URL:<http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2> [1658291/1658291] -> "isl-0.18.tar.bz2" [1]
gmp-6.1.0.tar.bz2: OK
mpfr-3.1.6.tar.bz2: OK
mpc-1.0.3.tar.gz: OK
isl-0.18.tar.bz2: OK
All prerequisites downloaded successfully.
[root@ecs-e8c4-0001 gcc]# yum install zlib* -y
注:
1、离线环境需要单独下载4个依赖包(gmp、mpfr、mpc、isl),解压后去掉目录版本号mv进gcc根目录下
2、zlib用iso里的即可
四、建立build目录,编译
[root@ecs-e8c4-0001 gcc-11.2.0]# mkdir gcc_build_11
[root@ecs-e8c4-0001 gcc-11.2.0]# cd gcc_build_11/
[root@ecs-e8c4-0001 gcc_build_11]# ../configure --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --disable-multilib
[root@ecs-e8c4-0001 gcc_build_11]# make -j
(编译...注意内存)
[root@ecs-e8c4-0001 gcc_build_11]# make install
[root@ecs-e8c4-0001 gcc_build_11]# gcc --version
gcc (GCC) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.