gcc与g++的安装升级,版本不一致等问题的解决

https://www.cnblogs.com/yujingxiang/p/14459599.html

手动方式

我参考的博客:https://blog.csdn.net/fpcc/article/details/99698783

1.下载gcc高版本安装包

清华源的镜像中下载需要版本的gcc

2.解压

tar zxvf gcc-x.x.x.tar.gz

3.下载编译所需要的依赖项

cd gcc-8.5.0
contrib/download_prerequisites

这里需要三个安装包,原下载速度会很慢,甚至下载不了,可以直接使用wget在清华源中进行下载:

wget https://mirrors.tuna.tsinghua.edu.cn/gnu/mpfr/mpfr-3.1.4.tar.bz2
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/mpc/mpc-1.0.3.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gmp/gmp-6.1.0.tar.bz2

再执行:

contrib/download_prerequisites

4.建立编译输出目录

mkdir build

5.创建Makefile

../../gcc-8.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

说明:第一个参数是编译Release版本,第二个参数是编译c和c++版本,因为GCC并不是只支持C/c++还支持其它语言。第三个参数是表明非分布式版本。

6.执行编译

make -j8

7.安装

sudo make install

8.查看版本

将当前终端关闭,重新打开,执行命令:

gcc --version

自动方式

我参考了https://blog.csdn.net/qq_37144530/article/details/106481292

#安装
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-7(版本) g++-7(版本)
#建立强链接
sudo ln -s /usr/bin/gcc-7 /usr/bin/gcc -f
sudo ln -s /usr/bin/g++-7 /usr/bin/g++ -f

这里需要注意gcc与g++版本问题,两个版本需要一致,不然会出一堆问题

错误

gcc: error trying to exec ‘cc1plus‘: execvp: 没有那个文件或目录

上边这种错误最可能的原因就是gcc与g++版本不一致

g++与gcc的删除

sudo apt-get remove gcc-v
sudo apt-get remove g++-v