注意事项:
1、不要随意升级gcc,高版本gcc编译出的程序可能在低版本glibc的机器上不能正常运行。
2、编译安装非常慢,最好直接找对应系统的gcc的rpm包安装最方便。
由于服务器环境无法联网,不能使用yum进行在线安装,需要全程手动,记录下安装过程
一.下载依赖包:
isl-0.18.tar.bz2
mpc-1.0.3.tar.gz
mpfr-3.1.4.tar.bz2
gmp-6.1.0.tar.bz2
4个依赖包可在 http://gcc.gnu.org/pub/gcc/infrastructure/ 进行下载
二.下载GCC源码包
gcc-9.2.0.tar.gz
可在 http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-9.2.0/ 进行下载
三.解压 gcc-9.2.0.tar.gz
tar -zxvf gcc-9.2.0.tar.bz2
yum install -y bzip2
四.(重点)将第一步下载的4个依赖包复制到解压后的 gcc-9.2.0 目录中去,这4个包不需要解压,直接放入
执行 ./contrib/download_prerequisites
联网状态下可以直接跳过第一步,执行这个脚本的时候也会自动从网络下载4个依赖包,咱们这里没有网络,所以将4个依赖包提前放入到gcc的目录中去,脚本会自动找到这4个包,不需要联网。
五.配置、编译、安装
创建一个目标安装目录: mkdir /opt/gcc920
执行配置:./configure --prefix=/opt/gcc920 --disable-checking --enable-languages=c,c++ --disable-multilib
编译:make (编译需要很长时间,建议吃个饭回来)
安装:make install
六.配置环境变量,启用新版本
/etc/profile 在其中的最后添加代码 例如 export PATH="/opt/gcc920/bin:$PATH",然后:source /etc/profile 重新加载。
测试: gcc -v
测试: cc -v
gcc 和 cc要一致,否则编译的时候会有各种错误
如果以前安装过低版本的gcc环境,很有可能gcc和cc不一致,使用which cc 找到cc位置并删除 rm cc (cc实际指向的就是gcc);直接使用命令创建个链接 ln -s gcc cc
ln -s /opt/gcc920/bin/gcc /usr/bin/cc
可能遇到的错误:
如果出现 configure: error: GNAT is required to build ada 错误
yum -y install gcc-gnat -y
如果出现 fatal error: zlib.h: No such file or directory 错误
yum install zlib-devel -y
如果出现 configure: error: C++ preprocessor "/lib/cpp" fails sanity check 错误
yum install gcc-c++ -y
如果出现 makeinfo: command not found 错误
yum install texinfo -y
为了避免日后编译软件发生 checking for C compiler … not found 错误,执行:
ln -s /usr/bin/gcc /usr/bin/cc