Centos7 GCC升级至10.2.0 出现g++:command not found
新搭建的一台测试机-centos7,安装的时候选了最小安装(后来知道这是一个多么作死的决定,想哭),测试机是不能联网的,全部安装必须离线安装
对机器安装boost时出现异常,编译boost时Failed to build Boost.Build build engine问题的解决
查找原因发现我没有安装gcc,然后我安装了系统自带的gcc 4.8.5,但还是没有解决问题,查找原因发现是GCC版本太低,需要升级,于是开启下面工程
1、下载GCC安装包 及其依赖
gcc-10.2.0.tar.gz
百度网盘链接:https://pan.baidu.com/s/1JOmaO1i5KLv8gy_MwjFXJg
提取码:c8gh
(包含gcc、gcc-C++默认版本以及gcc10.2.0)
2、解压压缩包(我解压到了/usr/local/)
tar -zxvf gcc-10.2.0.tar.gz
3、上传依赖包到 /usr/local/gcc-9.10 目录下,并解压
tar -xf gmp-6.1.0.tar.bz2 tar -xf mpfr-3.1.4.tar.bz2 tar -xf mpc-1.0.3.tar.gz tar -xf isl-0.18.tar.bz2
这个步骤中出现了一个异常,bzip2: Cannot exec: No such file or directory
这是因为没有安装bzip2-1.0.6.tar.gz
解决办法:下载并安装bzip2-1.0.6.tar.gz 百度网盘地址:
tar -xzvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make -f Makefile-libbz2_so
make clean
make
make install
安装好bzip2后,继续上面解压依赖包
4、进入解压目录中
cd gcc-10.2.0/
5、建立软链接
ln -sf gmp-6.1.0 gmp
ln -sf mpfr-3.1.4 mpfr
ln -sf mpc-1.0.3 mpc
ln -sf isl-0.18 isl
6、新建bulid目录(与gcc-10.2.0同级)并进入该目录中
mkdir build && cd build
7、生成Makefile文件
../gcc-10.2.0/configure --prefix=/usr/local --enable-checking=release --enable-languages=c,c++ --disable-multilib
8、编译及安装
make && make install
执行中途出现异常,如下图,然后查看config.log文件,显示g++:command not foun
该问题的原因是没有安装gcc-c++,最小安装的坑,但遇到了解决吧!
解决办法,到centos7的镜像文件中Packages文件夹中查找到下面19个rpm文件,复制到一个文件夹,然后拷贝到centos上,进入 gcc-c++执行安装命令 rpm -Uvh *.rpm --nodeps --force
安装gcc-c++完成后,继续之前操作,进入bulid目录,编译和安装 ,make && make install
完成!