解决libstdc、libcrypto、libssl等so文件版本依赖问题
最近在一台centos7(amd64)服务器上调用一个底层库时,分别遇到了以下几个错误,在此记录下解决方法
/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found
/lib64/libcrypto.so.1.0.0: version `OPENSSL_1.0.0’ not found
libssl.so.1.0.0: cannot open shared object file: No such file or directory
/lib64/libssl.so.1.0.0: symbol SHA256_Transform, version OPENSSL_1.0.2 not defined in file libcrypto.so.1.0.0 with link time reference
方法有很多,可以源码编译安装、或者编译后提取需要的so文件
我这里方法是从deb包中解压出需要的so文件,替换到系统目录
首先用strings命令查看版本确实不存在
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX_3
strings /usr/lib64/libcrypto.so.1.0.0 | grep OPENSSL_1
先解决第一个libstdc++.so.6,步骤如下:
这个是包含在gcc里的,首先可以考虑更新gcc版本来解决
下面步骤是仅提取so文件的方法(可能会缺少别的依赖so文件)
# 新建个目录进入
mkdir /tmp/libstdc
cd /tmp/libstdc
# 下载一个高版本gcc中的deb包,这里选了gcc8
wget http://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/main/g/gcc-8/libstdc++6_8.4.0-1ubuntu1~18.04_amd64.deb
# 解压deb
ar x libstdc++6_8.4.0-1ubuntu1~18.04_amd64.deb
# 解压其中的data.tar.xz
tar xvf data.tar.xz
# 确认解压出的libstdc++.so.6.0.25包含需要版本
strings ./usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25 |grep GLIBCXX_3.4.21
# 复制到系统目录
cp ./usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25 /usr/lib64/
# 更新libstdc++.so.6软链
ln -snf /usr/lib64/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6
同理,解决libcrypto.so、libssl.so步骤如下:
# 新建个目录进入
mkdir /tmp/libssl
cd /tmp/libssl
# 下载libssl1.0.0_1.0.2n的deb包
wget http://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.11_amd64.deb
# 解压
ar x libssl1.0.0_1.0.2n-1ubuntu5.11_amd64.deb
# 解压其中的data.tar.xz
tar xvf data.tar.xz
# 复制需要的so文件到系统目录
cp usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /usr/lib64/
cp usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 /usr/lib64/
如果是debian或ubuntu,可以直接安装deb包
sudo dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.11_amd64.deb
解决libstdc、libcrypto、libssl等so文件版本依赖问题相关推荐
- Oracle 数据库impdp导入数据库版本和dmp数据库文件版本不匹配问题解决方法,ORA-39142版本号不兼容、ORA-39000转储文件说明错误解决方法
解决方法一: 导出时指定版本,指定的版本和要导入的版本号一致. expdp ncc_auto/1@orcl directory=dir_dp schemas=ncc_auto dumpfile=ncc ...
- 游戏与计算机系统不兼容,电脑安装游戏时提示此文件版本与正在运行Windows不兼容的解决方法...
在电脑系统安装游戏的过程中遇到一些问题,导致无法正常安装游戏程序.在安装过程中,出现提示"此文件版本与正在运行Windows不兼容",对于这样的问题,我们应该如何进行解决呢?下面驱 ...
- 【Git】Git 分支管理 ( 解决分支合并冲突 | 本地处理文件冲突 )
文章目录 一.本地处理文件冲突 一.本地处理文件冲突 在下面的 [Git]Git 分支管理 ( 解决分支合并冲突 | 创建并切换分支 git switch -c feature1 | 修改 featu ...
- 程序运行依赖的重要文件版本不对_Deno核心模块:灵活依赖amp;安全沙箱
Deno 的目标不是兼容 Node,而是兼容浏览器.Deno 不是要取代 Node.js,也不是下一代 Node.js,也不是要放弃 npm 重建 Node 生态.比如react和vue的存在,两个框 ...
- vs2015网站发布时,设置页面合并后程序集的文件版本
如何将web网站的页面合并成一个新的程序集发布,并设定文件版本? 这个问题我也纠结了很久,问了很多大牛,也没有找到解决方案 曾开了一贴,https://bbs.csdn.net/topics/3910 ...
- 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题
原文 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 虽然微软宣称 Windows 10 将是最后一个 Windows 版本,但由于年代跨越 ...
- 使用自开发的代理服务器解决 SAP UI5 FileUploader 上传文件时遇到的跨域访问错误试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...
- CAD文件版本如何转换?分享两种版本转换方法
CAD文件的版本怎么转换呢?大家在处理CAD文件的时候肯定会遇到文件打不开的现象,出现这种状况很可能就是CAD文件的版本与软件不匹配,有一种很好的解决方法就是转换CAD文件的版本,该如何转换呢?今天教 ...
- 解决win7无法打开chm格式文件的问题
解决win7无法打开chm格式文件的问题. (一).简单方法(本人用的这个) 1.打开chm 2.win7提示安全问题 3.chm无法显示内容 4.关闭chm 5.右键点击chm,点击"解除 ...
最新文章
- mysql免安装版5.7.7以后在windows上的那些操作(1)
- c语言malloc函数用法_小白对c语言数组的基础总结
- 47.内存连续分配管理方式有哪几种?
- Longest Common Prefix
- python自己做个定时器_技术图文:如何利用 Python 做一个简单的定时器类?
- centos 7 菜鸟第一天 双启动
- 第5章 高效的多线程日志
- java统计中英文字数 Java问题通用解决代码
- comsol与matlab联合,联合应用COMSOL和matlab.pdf
- POJ 3744 Scout YYF I(矩阵快速幂优化+概率dp)
- android系统怎么连不上wifi,为什么手机连接不上wifi wifi连不上怎么办
- 上小学的划片政策(by quqi99)
- 从零开始搭建K8S集群(二)-- 搭建K8S集群
- 最新AppStore审核被拒常见条例,及解决方案(内购、切支付篇)
- 安利几款软件给需要的你
- 计算机二级PS教学视频百度云,计算机二级ps考试题库完整教程文件.pdf
- 【Fiddler】如何使用Fiddler中的Fiddler插件下载钉钉直播回放
- 初入计算机专业,编程语言怎么选?大学生活如何度过?
- 10-22 查询S001或S003学生选修课程(MSSQL)
- STM32使用CJSON获取心知天气