gcc动态库升级

 1.报错

error: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /opt/apps/venus-backend/node_modules/canvas/build/Release/canvas.node)

 2.解决方案

 升级gcc动态库

3.解决步骤

1.查看当前动态库版本
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_TM_1
发现最高版本只有1.3.7,没有1.3.9的。

2.下载最新动态库并编译
wget http://ftp.gnu.org/gnu/glibc/glibc-2.34.tar.xz
tar -xvf glibc-2.34.tar.xz
mkdir glibc-build  #不能在glibc当前目录下运行configure,否则会报错"configure: error: you must configure in a separate build directory",需要新建编译目录
mkdir glibc-install

cd  glibc-build
../glibc-2.34/configure --prefix=/root/glibc-install
make &&make install
cp /root/glibc-install/lib/libc-2.34.so
cd  /usr/lib64/
ll libstdc++.so.6 #查看当前系统版本,用于恢复
lrwxrwxrwx. 1 root root 19 Jan 28  2021 libstdc++.so.6 -> libstdc++.so.6.0.19
rm -f libstdc++.so.6 && ln -sv libc-2.34.so libstdc++.so.6


源码包下载地址:
http://mirrors.ustc.edu.cn/gnu/libc/
http://ftp.gnu.org/gnu/glibc/
https://centos.pkgs.org/7/centos-x86_64/libstdc++-4.8.5-44.el7.x86_64.rpm.html
参考地址:https://blog.csdn.net/u012927281/article/details/51704855

4.使用现有  

链接:https://pan.baidu.com/s/1vvGFYDG9GkrFNqf2FaUdoA 
提取码:4mul 
直接替换即可

5.遇到的问题

make的版本低不能使用,默认带的是 3.82 不满足 make 4.0 的最低要求

cd /tmp
 
wget http://mirrors.ustc.edu.cn/gnu/make/make-4.0.tar.gz
tar xf make-4.0.tar.gz 
cd make-4.0/
./configure 
make
make install
make -v
# 此时的 make 还是3.82 与环境变量有关系
/usr/local/bin/make -v
# 这是我们刚安装的 make 它的版本是4.0
whereis make
# 找一下都有哪些 make
cd /usr/bin/
mv make make.bak
# 把默认的 make 改名 
ln -sv /usr/local/bin/make /usr/bin/make
# 建立一个软连接
make -v
# 查看一下大功告成

  

  

"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少
原文地址:https://www.cnblogs.com/panwenbin-logs/p/15661586.html