centos7 解决 /lib64/libm.so.6: version “GLIBC 2.29‘

执行代码时报如下错误:
在这里插入图片描述
解决方案:
安装包版本:Python-3.7.4、make-4.3、glibc-2.29
(1)、安装Python-3.7.4
yum update -y
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
tar xzf Python-3.7.4.tgz
cd Python-3.7.4
./configure
yum install libffi-devel zlib* -y
vim Modules/Setup
#zlib zlibmodule.c -I ( p r e f i x ) / i n c l u d e − L (prefix)/include -L (prefix)/includeL(exec_prefix)/lib -lz (去掉注释)
make && make install

(2)、升级gcc与make
yum -y install centos-release-scl
# 1. 安装GCC-8
yum install -y devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils
# 设置环境变量
echo “source /opt/rh/devtoolset-8/enable” >> /etc/profile
source /etc/profile

#升级 make
wget https://ftp.gnu.org/gnu/make/make-4.3.tar.gz
tar -xzvf make-4.3.tar.gz && cd make-4.3/
#安装到指定目录
./configure --prefix=/usr/local/make
make && make install
#创建软链接
cd /usr/bin/ && mv make make.bak
ln -sv /usr/local/make/bin/make /usr/bin/make

(3)、编译 glibc
wget http://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz
tar xf glibc-2.29.tar.gz
cd glibc-2.29/ && mkdir build
cd build && …/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install

#日志最后会出现如下问题
primary library!
make[1]: *** [Makefile:111: install] Error 1
make[1]: Leaving directory ‘/root/glibc-2.28’
make: *** [Makefile:12: install] Error 2

出现上面问题不用管,接着安装
yum install libstdc++.so.6 -y
#下载需要的版本库,之后软连接到运行系统上
wget http://ftp.de.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.3.0-6_amd64.deb
ar -x libstdc++6_8.3.0-6_amd64.deb
tar -xvf data.tar.xz
cp usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25 /usr/lib64/
find / -name "libstdc++"
#删除低版本库的软连接
rm -rf /usr/lib64/libstdc++.so.6
ll /usr/lib64/libstd

ln -s /usr/lib64/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6

解决中文乱码问题

cd /root/glibc-2.29/build && make localedata/install-locales

你可能感兴趣的:(linux)