雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

linux中升级gcc的版本

2024-06-15 linux 60

前言

最近在一个比较古老的linux(centos6.5)中编译一个动态库,遇到编译不过的问题,错误信息为:‘aligned_alloc’ was not declared in this scope,意思是aligned_alloc这个函数找不到,在其他linux这个动态库是能正常编译的,后来查询了一下,发现是gcc的版本太低导致,升级到至少7.2才行。以下就记录一下如何升级gcc的版本到7.2

下载和解压

在任意有权限的目录执行以下命令:

wget http://ftp.gnu.org/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.gz                     #下载gcc源码
tar -xvf gcc-7.2.0.tar.gz        # 解压源码

编译和安装

继续执行以下命令:

cd gcc-7.2.0
./contrib/download_prerequisites     #下载依赖库
mkdir gcc-temp                      #建立编译输出目录
./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib   #生成makefile文件
make -j4                            #编译(j为核心数,速度会更快,这步极为耗时,建议睡前操作)
sudo make install                    #安装

替换旧的gcc

当前版本位于/usr/bin/gcc,执行以下命令

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

查看当前版本号(可能需要重启)

gcc -v

显示为7.2.0即升级成功。

更新于:5个月前
赞一波!1

文章评论

评论问答