问题描述:CentOS 7自带gcc的版本为4.8.5。在编译安装LLVM时出现HOST GCC版本问题:“Host GCC version must be at least 5.1, your version is 4.8.5.”
$ gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
Copyright © 2015 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
解决方式有两种:
1、下载源码编译安装gcc
2、通过安装scl源解决多版本gcc安装问题(推荐)
方法一:下载源码编译安装gcc
下载源码:http://ftp.gnu.org/gnu/gcc/gcc-7.3.0/,并选择一个合适的目录解压。
下载依赖包:
$ cd gcc-7.3.0
$ ./contrib/download_prerequisites
配置编译参数并编译安装
$ mkdir obj
$ cd obj
$ ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
$ make -j4
$ make install
也可参考之前系统自带gcc的编译参数进行配置
$ gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --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++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
方法二:通过安装scl源解决多版本gcc安装问题(推荐)
尽量不要覆盖掉之前自带的gcc
$ su
# yum install centos-release-scl
# yum install devtoolset-7-gcc*
# exit
$ scl enable devtoolset-7 bash
$ whcih gcc
/opt/rh/devtoolset-7/root/usr/bin/gcc