linux升级gcc版本详细教程

article/2025/10/7 21:26:16

0.前言

一般linux操作系统默认的gcc版本都比较低,例如centos7系统默认的gcc版本为4.8.5。gcc是从4.7版本开始支持C++11的,4.8版本对C++11新特性的编译支持还不够完善,因此如果需要更好的体验C++11以及以上版本的新特性,需要升级gcc到一个较高的版本。

本文给出了linux系统中涉及国家gcc的操作步骤,供大家参考。

升级步骤可以大致分为下面四个步骤:

  • 查看确认原来的gcc版本

  • 下载需要升级的gcc版本

  • 下载新版本gcc需要的依赖

  • 编译并安装gcc新版本

  1. 查看确认gcc原来的版本

linux命令行中输入:

gcc --version

可以看到显示如下:

gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright © 2015 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。

一般很多linux系统默认的gcc版本为4.8.5,该版本对C++11的支持还不够完善,可以将版本升级到一个更高的版本。本文以升级到版本10.1.0为例。

  1. 下载需要升级的gcc版本并解压

2.1下载gcc新版本

由于linux系统没有外网,本文给出的示例是先在windows系统上将gcc版本下载,然后上传的linux系统中。

下载gcc新版本地址为:

http://ftp.gnu.org/gnu/gcc/

上面有很多gcc版本,需要自己需要的版本进行下载即可。

本文以版本10.1.0为例,点击红色部分,下载文件gcc-10.1.0.tar.gz:

2.2 将gcc新版本上传到linux系统并解压

将下载好的gcc版本上传到linux系统中。本文将版本放在目录:

/opt2/test_other/debug_test/

进入到/opt2/test_other/debug_test/目录,将文件解压到/usr/local目录下面:

tar -zvxf gcc-10.1.0.tar.gz --directory=/usr/local/

解压之后可以在/usr/local目录下面看到解压后的gcc目录:

  1. 下载并gcc需要的依赖

3.1 查看gcc需要的依赖

cd 到gcc-10.1.0目录下面,查看需要的依赖:

vim contrib/download_prerequisites

可以看到需要的依赖以及版本如下:

从上面看到一共有四个依赖:gmp、mpfr、mpc以及isl。

3.2 下载需要依赖

在安装gcc新版本之前一定要先下载这几个依赖(注意依赖的版本)。

依赖下载的地址:

https://gcc.gnu.org/pub/gcc/infrastructure/

下载好4个依赖之后,将文件上传到linux系统的目录/opt2/test_other/debug_test/下面。

3.3 将依赖解压到目录gcc-10.1.0

cd到/opt2/test_other/debug_test/目录下面,用下面命令将gmp文件解压到目录gcc-10.1.0:

tar -jvxf gmp-6.1.0.tar.bz2 --directory=/usr/local/gcc-10.1.0/

用同样的命令可以将isl-0.18.tar.bz2、mpfr-3.1.4.tar.bz2解压到目录gcc-10.1.0。

下面的命令将mpc-1.0.3.tar.gz解压到目录gcc-10.1.0:

tar -zvxf mpc-1.0.3.tar.gz --directory=/usr/local/gcc-10.1.0/

3.4 为新下载的依赖建立软链接

cd到gcc-10.1.0目录下面,依次执行下面四个命令,为四个依赖创建软链接:

ln -sf gmp-6.1.0 gmp
ln -sf isl-0.18 isl
ln -sf mpc-1.0.3 mpc
ln -sf mpfr-3.1.4 mpfr

在目录gcc-10.1.0下面查看建立的软连接:

ls -l | grep ^l

如果上面的软连接建立成功,会看到下面四个链接文件,显示如下:

  1. 编译并安装gcc

4.1 编译并安装

在目录gcc-10.1.0下面依次执行下面两个命令:

mkdir build && cd build 
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib 

如果上面的命令执行正确,可以看到生成的makefile文件。上述命令执行完成之后,build下面可以看到下面几个文件:

config.log config.status Makefile serdep.tmp

注意在执行上面的第二个configure命令时,也可以通过prefix参数为新版本gcc指定安装安装目录(如果没有指定默认为/usr/local/,这里本文没有指定):

../configure --prefix=/usr/local/gcc-10.1.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib

然后在build目录下面执行的命令,编译安装gcc:

make -j4 && make install

该过程时间比较漫长,大约需要2小时以上,需要耐心等待。如果编译安装过程没有报错,最后一段打印大概是这样:

4.2 更新gcc

上面的过程执行完,如果你在linux命令行中输入:gcc -version,你会发现显示的还是原来的版本,这是因为gcc还没有更新,执行的还是原来的gcc命令。

原来的gcc命令位于目录/usr/bin/gcc等目录下面,为了不覆盖原来的命令。将原来的相关内容进行备份处理,执行如下命令:

mv /usr/bin/gcc /usr/bin/gcc485
mv /usr/bin/g++ /usr/bin/g++485
mv /usr/bin/c++ /usr/bin/c++485
mv /usr/bin/cc /usr/bin/cc485
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak

安装的gcc新版本位于/usr/local/bin目录下面,需要为新版本gcc创建软链接:

ln -s /usr/local/bin/gcc /usr/bin/gcc
ln -s /usr/local/bin/g++ /usr/bin/g++
ln -s /usr/local/bin/c++ /usr/bin/c++
ln -s /usr/local/bin/gcc /usr/bin/cc
ln -s /usr/local/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6

上面的步骤步骤完成之后,输入gcc -v查看版本:

可以看到版本已经变成安装的最新版本10.1.0了,说明安装成功。

【参考文章】

  1. https://www.jb51.net/article/95974.htm

  1. https://www.jb51.net/article/230581.htm

  1. https://cloud.tencent.com/developer/article/1424725

  1. https://blog.csdn.net/liyelool/article/details/118656509


http://chatgpt.dhexx.cn/article/HDdJI0XM.shtml

相关文章

ubuntu20.04查看gcc版本以及各版本切换

1、查看自己当前的gcc版本 gcc -v通过下图的最后一行可以得到,这里电脑当前gcc的版本是 7.5.0 查看Eigen版本: pkg-config --modversion eigen32.安装另一个版本gcc 这里安装的是gcc-9: sudo add-apt-repository ppa:ubuntu-toolchain-r…

最新:斐讯K3千兆无线路由器刷官改版固件的详细图文教程

2018年1月31日更新:本教程已经同步增添Phitools 作者最新修改的固件以便支持 K3_V21.6.12.66 版刷机。 如果喜欢折腾的话可以刷LEDE固件,刷机方法看:[图文教程] 斐讯K3金/银色版路由器免拆机通用刷机教程 此前蓝点网已经发布了借助恩山论坛开…

斐讯k2刷不死breed K2 22.5.11.14

[k2] 斐讯K2 22.5.11.14 A5 原厂固件 刷breed刷官方固件定制版方法 这个是我刷机之前备份的,有用的拿去。 首先是刷breed,按照abccba94大神的终极方法刷入成功,参考【刷机必读】斐讯K2刷breed的安全方法及开源一键刷机脚本 终极的不行&…

用编程器免拆夹子刷斐讯K2 K2P解决难搞固件 刷BREED 无损原EEPROM

文章中放的几个地址都是思路来源,感谢各路大神原帖子的思路,因为我刷机时候没有拍照,只好借用各位大佬的图来说明步骤,我做一下整理会放出本篇刷机流程,很简单! K2 22.6.532.231软件版本已经无解&#xff…

k2p—b1版本刷固件遇到的问题

因为之前刷过梅林华硕的固件,但是今天手贱,点了个升级,然后路由器就gg了,当时想再刷一遍就好了,但是好久没刷过了,难免有些生疏,看完教程就上手了,但是发现固件一直传不上去&#xf…

msdn i tell you网址及下载系统详细步骤

一、msdn i tell you网址及下载系统详细步骤 msdn i tell you地址: 2.进去网站以后会让你免费注册以一个账号,然后用邮箱方式让你激活。 3.注册完以后,你就可以正常下载了。

Travel English

Tong lau or Chinese tenement building - 唐楼

MSDN i tell you 下载说明

i tell you 如何下载文件 网址:https://msdn.itellyou.cn/ 1、这里复制 BT类型,原因是百度网盘不支持ED2K 2、使用百度网盘下载文件,下载速度慢的话,就自己想办法,别问我!!!&…

Travel

Description 给出一个有 个顶点 条边的有向图,对于一条边长度为len的边有两种走法。   1、如果a和b可以互达,则走过这条边的时间为len   2、如果a和b不可以互达,则走过这条边的时间为2*len   现在给出一个k,问&#xff0…

Don't forget your original intention.

生活不止眼前的苟且 妈妈坐在门前 哼着花儿与少年 虽事隔多年 记得她泪水涟涟 那些幽暗的时光 那些坚持与慌张 在临别的门前 妈妈望着我说 生活不止眼前的苟且,还有诗和远方的田野, 你赤手空拳来到人世间,为找到那片海不顾一切。 她…

I tell you 如何下载文件

地址:https://msdn.itellyou.cn/ I tell you 可以下载一些office,windows系统等,还是十分方便的。 如何下载(可以使用迅雷或者百度网盘等) 展开详细信息 —— 复制框中的链接——打开迅雷 直接下载就好了。

please tell me who you are?

GIT 中提示 please tell me who you are 如果使用git过程中出现了,please tell me who you are , 需要设置一下使用者的身份。 1.git config user.name "username" 2.git config user.email "usernameXXX.com"

*** Please tell me who you are.

Xcode6在创建工程后: *** Please tell me who you are. Run git config --global user.email "youexample.com" git config --global user.name "Your Name" to set your accounts default identity. Omit --global to set the identity only…

Telephone Lines

Description Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone company is uncooperative, so he needs to pay for some of the cables required to connect his farm to the phone system. There are N (1 ≤ N ≤ 1,000) forlorn tel…

i tell you 微软各种 操作系统 应用程序 开发工具 下载

I tell you 提供微软系各种操作系统(win7、xp、win10)、应用程序(office、project、visio等)、开发人员工具(visual C、visual basic、visual studio等)、服务器系统、设计人员工具等软件的下载。可以说几乎…

常用的红色的RGB值

每一种颜色都有自己的风格,相信点进这篇文章的你一定喜欢设计,希望能对您有所帮助 请点击此处输入图片描述 请点击此处输入图片描述 请点击此处输入图片描述 请点击此处输入图片描述 请点击此处输入图片描述 转自[叫我楼下小黑]

常用RGB色值表

常用RGB色值表 浅粉红 #FFB6C1 255,182,193 粉红 #FFC0CB 255,192,203 猩红/深红 #DC143C 220,20,60 淡紫红 #FFF0F5 255,240,245 弱紫罗兰红 #DB7093 219,112,147 热情的粉红 #FF69B4 255,105,180 深粉红 #FF1493 255,20,147 中紫罗兰红 #C71585 199,21,133 兰花紫 #DA70D6 21…

渐变色表RGB值

渐变色表RGB值 //色表构建vector<unsigned char> R { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,240, 220, 200, 180, 160, 140, 120, 100, 80, 60, 40, 20, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…

RGB颜色表

常用颜色&#xff1a; 白色&#xff1a;rgb(255,255,255) 黑色&#xff1a;rgb(0,0,0) 红色&#xff1a;rgb(255,0,0) 绿色&#xff1a;rgb(0,255,0) 蓝色&#xff1a;rgb(0,0,255) 青色&#xff1a;rgb(0,255,255) 紫色&#xff1a;rgb(255,0,255) 颜色大全https://tool.osch…