Ubuntu 16.04升级gcc 到 gcc7.2.0

引用说明:https://blog.csdn.net/xiaomayi1994/article/details/105325872
在此基础上进行加工修改

最近在跑编译的时候提示:error: cannot convert ‘const std::__cxx11::basic_string’ to ‘const char*’

使用gcc -v查看gcc的版本,发现gcc的版本太低,需要升级gcc的版本。

本来打算使用sudo apt-get upgrade升级,但是使用该命令的时候出现错误:libstdc++.so.6: version `GLIBCXX3.4.22’ not found

提示apt-get也用不了,所以apt-get也使用不了。目前唯一的方法就是从源安装gcc。

(1)下载对应版本的gcc:

wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.gz

这是清华大学提供给的镜像,下载速度更快些。

(2)下载好之后进行解压:

tar -zxvf gcc-7.2.0.tar.gz gcc-7.2.0/

解压之后:cd gcc-7.2.0

之后需要下载几个文件直接使用: ./contrib/download_prerequisites

如果连不上网之类的可以手动下载文件,然后拷贝到gcc-7.2.0目录下。
如:

1、解压mpfr

cp mpfr-3.1.4.tar.bz2 ./gcc-7.2.0
cd ./gcc-7.2.0 && tar -xvjf mpfr-3.1.4.tar.bz2
ln -s ./mpfr-3.1.4 mpfr

2、解压mpc

cp mpc-1.0.3.tar.gz ./gcc-7.2.0
cd ./gcc-7.2.0 && tar -zxvf mpc-1.0.3.tar.gz
ln -s ./mpc-1.0.3 mpc

3、解压

cp gmp-6.1.0.tar.bz2 ./gcc-7.2.0
cd ./gcc-7.2.0 && tar -xvjf gmp-6.1.0.tar.bz2
ln -s ./gmp-6.1.0.tar.bz2 gmp

(3)建立新的build文件夹,保证源目录的整洁性

mkdir build 

cd build

然后运行一些配置命令:

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

(我也不知道具体啥意思,有兴趣的可以查一下,但是这是针对64bit系统的)

加载成功之后就可以生成Makefile文件了

之后进行make,只有make成功才ok,我在make 的时候遇到了错误

WARNING: 'aclocal-1.14' is missing on your system.
You should only need it if you modified 'acinclude.m4' or
'configure.ac' or m4 files included by 'configure.ac'.

原因是我的系统里没有automake,所以接下来要安装automake

wget http://ftp.gnu.org/gnu/automake/automake-1.14.1.tar.gz下载autoconf安装包
解压缩 tar -zxvf automake-1.14.1.tar.gz -C /opt/

cd /opt/automake-1.14.1

输入命令:./bootstrap.sh

配置环境:./configure

配置并安装:make;make install

检查automake --version

automake安装之后重新进入gcc7.2.0下的build目录make,这个过程许需要很长一段时间,我大概用了两三个小时,成功之后进行make install

之后使用gcc -v查看版本检查是否安装成功,就这些啦!!!

最后可能还需要进行 系统的软连接才可以真正使用gcc7
1、替换旧的 gcc
假设7.2.0 安装完毕后会生成 /usr/local/bin/x86_64-pc-linux-gnu-gcc-7.2.0

update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/x86_64-pc-linux-gnu-gcc-7.2.0 40
# 倒数第三个是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级
mv /usr/bin/gcc /usr/bin/gcc.bak # 将原本的gcc重命名(删除亦可)
ln -s /usr/local/bin/x86_64-pc-linux-gnu-gcc-7.2.0 /usr/bin/gcc  # 使用gcc7.1版本

2、替换旧的g++

# 倒数第三个是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级
mv /usr/bin/g++ /usr/bin/g++.bak # 将原本的gcc重命名(删除亦可)
ln -s /usr/local/bin/x86_64-pc-linux-gnu-g++  /usr/bin/g++  # 使用gcc7.1版本
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Ubuntu 16.04升级gcc,你可以按照以下步骤进行操作。首先,添加编译链的PPA源,可以使用以下命令: sudo add-apt-repository ppa:ubuntu-toolchain-r/test 然后,更新软件源列表: sudo apt update 接下来,安装gcc-9和g++-9: sudo apt-get install gcc-9 g++-9 通过执行以上步骤,你可以在Ubuntu 16.04升级gcc到版本9。 如果你目前正在使用Ubuntu 14.04,你无法直接体验新版本的gcc。一种解决办法是升级到较新的Ubuntu版本,如Ubuntu 16.04,然后按照上述步骤进行升级。另一种解决办法是安装较新版本的gcc,如gcc-4.9、gcc-5或gcc-6。你可以使用以下命令安装这些版本: sudo apt-get install gcc-4.9 g++-4.9 sudo apt-get install gcc-5 g++-5 sudo apt-get install gcc-6 g++-6 这样,你就可以在Ubuntu 14.04中安装较新的gcc版本。请注意,gcc-5实际上是5.3.0版本,没有5.1或5.2版本可供选择。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Ubuntu16.04升级gcc、g++版本](https://blog.csdn.net/weixin_45747535/article/details/125902856)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Ubuntu升级gcc版本](https://blog.csdn.net/gatieme/article/details/52871438)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值