gcc编译升级&&解决GLIBC_2.18 not found

本文档介绍了如何在CentOS系统中升级GCC到4.9.2版本,包括通过yum和编译安装两种方式,并详细阐述了编译安装的依赖包安装过程。同时,也提供了升级GLIBC到2.18的步骤,包括下载源码、编译和安装等关键操作。整个过程旨在确保系统顺利升级并保持稳定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

升级GLIBC前,需要将默认的gcc4.85升级,而升级gcc走编译有强依赖包,如下操作即可完成升级。

0、gcc 与 g++ 区别

gcc【全称GNU Compiler Collection】 是gnu的c编译器
g++ 是c++编译器

1、 升级gcc

升级gcc有两种方法,1)yum 安装;2)编译安装。当yum安装有问题时,走编译安装

1.1 yum安装 gcc
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all && yum makecache

yum -y install centos-release-scl
yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils

scl enable devtoolset-7 bash

需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。

如果要长期使用gcc 7.3的话:

echo "source /opt/rh/devtoolset-7/enable" >>/etc/profile

验证gcc版本:

gcc  --version

参考:https://www.vpser.net/manage/centos-6-upgrade-gcc.html

1.2 编译安装 gcc

gcc编译安装存在依赖关系,需要按以下顺序安装:

  • gmp 【gmp-5.0.1.tar.gz】
  • mpfr(GNU镜像) 或 官网 【mpfr-3.1.5.tar.gz】
  • mpc 【mpc-1.0.3.tar.gz】
  • gcc 【gcc-4.9.2】

1)安装 gmp: http://ftp.gnu.org/gnu/gmp/

wget http://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.gz
tar -xvzf gmp-5.0.1.tar.gz
cd gmp-5.0.1/ && mkdir temp && cd temp/
../configure --prefix=/usr/local/gmp-5.0.1
make && sudo make install

2)安装 mpfr:http://ftp.gnu.org/gnu/mpfr/

wget http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.5.tar.gz
tar -xvzf mpfr-3.1.5.tar.gz
cd mpfr-3.1.5/ && mkdir temp && cd temp/
../configure --prefix=/usr/local/mpfr-3.1.5 --with-gmp=/usr/local/gmp-5.0.1
make && sudo make install

3)安装 mpc:http://ftp.gnu.org/gnu/mpc/

wget http://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
tar -xvzf mpc-1.0.3.tar.gz
cd mpc-1.0.3/ && mkdir temp && cd temp/
../configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5
make && sudo make install

安装三个依赖库后,需要把库路径添加到/etc/ld.so.conf文件中:

vim /etc/ld.so.conf

/usr/local/gmp-5.0.1
/usr/local/mpfr-3.1.5
/usr/local/mpc-1.0.3

添加完路径后,执行生效,将新添加的路径进入动态cache

ldconfig

4)安装 gcc: http://ftp.gnu.org/gnu/gcc/

http://ftp.gnu.org/gnu/gcc/gcc-4.9.2.tar.gz
tar -jxvf gcc-4.9.2.tar.gz
cd gcc-4.9.2/ && mkdir output && cd output/
../configure --prefix=/usr/local/gcc-4.9 --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5 --with-mpc=/usr/local/mpc-1.0.3
make -j4 && sudo make install 【该过程耗时约 1 h 】

5)验证安装

/usr/local/gcc-4.9/bin/gcc  --version

6)添加软链接

cd /bin/
sudo mv gcc gcc_4.85 
sudo mv g++ g++_4.85
sudo mv cpp cpp_4.85
sudo mv c++ c++_4.85
.. ..
sudo ln -s /usr/local/gcc-4.9/bin/gcc  /bin/gcc
sudo ln -s /usr/local/gcc-4.9/bin/G++  /bin/g++
sudo ln -s /usr/local/gcc-4.9/bin/cpp  /bin/cpp
sudo ln -s /usr/local/gcc-4.9/bin/c++  /bin/c++
... ...
g++  --version

2 升级 GLIBC_2.18

1)查看 当前版本

ldd --version
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

2)将 gcc 从 4.85 版本升级,如上步骤

3)升级glibc

sudo wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar -zxvf glibc-2.18.tar.gz
cd glibc-2.18
mkdir build
cd build

../configure   --prefix=/usr  --disable-profile --enable-add-ons  --with-headers=/usr/include  --with-binutils=/usr/bin

make -j4 && sudo make install
# 验证版本
ldd  --version
strings   /lib64/libc.so.6  | grep '^GLIBC_'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值