技术分享| gcc版本升级到5.2

发布时间 2023-11-22 11:45:54作者: anyRTC

一、介绍

GCC(GNU Compiler Collection)是一套广泛使用的开源编译器集合,用于编译多种编程语言,包括C、C++、Objective-C、Fortran等。GCC 的不同版本提供了许多新功能、改进和修复,其中包括从 GCC 4.8.5 升级到 GCC 5.2.0 所带来的一些变化。

GCC 5.2.0 是 GCC 5 系列的一个版本,相对于 GCC 4.8.5,它引入了一些重要的改进和功能。以下是一些可能的变化和改进:

  1. C++14 支持:GCC 5.2.0 开始增加对 C++14 标准的支持。这意味着可以使用 C++14 中引入的新特性和语法,如泛型 Lambda 表达式、二进制字面量、变长模板参数包等。
  2. 新的优化和性能改进:GCC 5.2.0 引入了一些新的优化技术和性能改进,可以提高生成的代码的执行效率。这些改进可能包括新的优化策略、针对特定处理器架构的优化、更好的内存管理等。
  3. C11 支持:GCC 5.2.0 开始增加对 C11 标准的支持。C11 是 C 语言的一个新版本,引入了一些新的特性和改进,如线程支持、原子操作、泛型选择表达式等。
  4. 代码质量和警告改进:GCC 5.2.0 可能会引入一些新的代码质量改进和警告机制,帮助开发人员发现潜在的问题和错误。这些改进可能包括更准确的警告、新的代码分析技术等。
  5. 新的语言扩展和特性:GCC 5.2.0 可能引入一些新的语言扩展和特性,以提供更丰富的编程功能和选项。这些扩展可能针对特定的编程语言,如 C、C++、Fortran 等。

二、环境准备

当前版本:gcc version 4.8.5 (GCC)

升级版本:gcc version 5.2.0 (GCC)

## 下载源码包
[root@localhost ~]# yum -y install bzip2 gcc* gdb wget 
[root@localhost ~]# wget http://mirrors.concertpass.com/gcc/releases/gcc-5.2.0/gcc-5.2.0.tar.bz2

## 无网情况下手动下载上传到服务器

三、安装依赖

## 解压 
[root@localhost ~]# tar -jxvf gcc-5.2.0.tar.bz2
[root@localhost ~]# cd gcc-5.2.0

## 安装依赖
[root@localhost gcc-5.2.0]# ./contrib/download_prerequisites

无网情况下

1、手动下载download_prerequisites包含的依赖包到gcc-5.2.0目录下

2、修改download_prerequisites文件,把wget相关的注释掉,在执行./contrib/download_prerequisites

四、编译安装

1、配置相关参数

[root@localhost gcc-5.2.0]# mkdir gcc-build-5.2.0
[root@localhost gcc-build-5.2.0]# cd gcc-build-5.2.0
[root@localhost gcc-build-5.2.0]# ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

2、开始编译,如果是多核服务器最好加上 -j4参数,4代表安装的服务器cpu核数,这里时间较长耐心等待

[root@localhost gcc-build-5.2.0]# make -j4

3、开始安装

[root@localhost gcc-build-5.2.0]# make install

默认库文件存放位置:/usr/local/lib64

默认bin文件存放位置: /usr/local/bin

4、查看最新版本的gcc,如果版本是5.2.0那么就安装成功了,如果没有成功此时可以看下g++ -v ,可以看到已经是5.2.0了

[root@localhost gcc-build-5.2.0]# gcc -v
[root@localhost gcc-build-5.2.0]# g++ -v

如果发现gcc还是老版本,g++是新版本,那么需要重启服务器

[root@localhost gcc-build-5.2.0]# reboot

5、再次查看gcc版本

[root@localhost ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/5.2.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 5.2.0 (GCC)

在这里插入图片描述