最近要搭建doris集群,需要gcc7.3.0+的版本,期间遇到了很多问题,记录一下
因为是新的服务器,所以什么软件都没有,先用yum安装一些要用的软件
前置软件
安装低版本的gcc,不然在某一步会提示没有gcc,编译某些文件要gcc
yum -y install gcc
安装 gcc++, 不安装这个,在6步编译7.3.0的时候会报错没有gcc++
yum -y install gcc+ gcc-c++
安装wget 和bzip2,不然在第3部会报错
yum -y install wget
yum -y install bzip2
1、下载gcc-7.3.0
wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
这里我是自己下载的gcc-7.3.0.tar.gz,然后上传到服务器上
2、解压&进入目录
tar -xf gcc-7.3.0.tar.gz
cd gcc-7.3.0
3、运行 download_prerequisites 脚本,这个脚本会下载gcc安装需要的gmp, mpfr, mps, isl包
./contrib/download_prerequisites
运行这个命令时报错了,最后发现是没有wget命令和bzip2包,安装wget和bzip2之后继续执行上面的命令
yum -y install wget
yum -y install bzip2
执行脚本成功
在第三台机器上执行这个命令还出现过这个错误
error: Cannot verify integrity of possibly corrupted file gmp-6.1.0.tar.bz2
删除gmp包重新执行上述命令,因为网不好,没下载完全
4、建立编译输出目录,并进入该目录,
mkdir gcc-build-7.3.0
cd gcc-build-7.3.0
5、配置
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
参数解释:
–enable-checking=release 增加一些检查,也可以–disable-checking生成的编译器在编译过程中不做额外检查
–enable-languages=c,c++ 你要让你的gcc支持的编程语言
–disable-multilib 取消多目标库编译(取消32位库编译)
6、编译
sudo make
这个编译花了一个多小时,后面下班了,早上我打开电脑就编译好了
7、删除原来的低版本gcc
因为我用的yum安装低版本的gcc,所以执行下面的语句
yum remove gcc gcc-c++
此时重新刷新一下环境变量
source /etc/profile
8、安装
sudo make install
9、查看gcc版本
gcc -v
安装成功