升级CentOS 7 GCC

编译Intel PCM 使用了 simdjson(Github) ,而 simdjson 需要使用现代化的编译器(LLVM clang 6 or better, GNU GCC 7.4 or better, Xcode 11 or better)。在CentOS 7环境,默认的 gcc 4.8.5 无法 编译Intel PCM ,所以升级

gcc mirror sites 找一个最近的镜像网站,下载 10.5 版本

  • 编译准备:

编译gcc准备(安装编译依赖)
sudo yum -y install bzip2 wget gcc gcc-c++ gmp-devel mpfr-devel libmpc-devel make texinfo
  • 编译安装gcc:

编译gcc
version=10.5.0

wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-${version}/gcc-${version}.tar.gz
tar xfz gcc-${version}.tar.gz
cd gcc-${version}

# 64位操作系统没有安装32位开发库,一般也用不上,所以使用 --disable-multilib 参数
# 仅编译支持c/c++
# 如果要指定安装目录,可以使用类似 --prefix=$HOME/.gcc/10.5.0 这样的参数
./configure --disable-multilib --enable-languages=c,c++
make
sudo make install

警告

编译GCC是非常大型的编译,如果没有使用 并行make 则编译过程非常漫长。对于多处理器核心建议使用 并行make 。不过,也很郁闷的是,这个并行编译可能还受限于gcc版本,我在aliOS 7.2环境使用发行版的gcc 4.8.5,开启 并行make 居然无法完成 gcc-10.5.0 编译,取消了并行编译才能正确完成编译gcc。

参考