/usr/lib64/libssl.so.10: no version information anailable

运行某程序,发现报错,ldd 看了下依赖的库有哪些,其中报:/usr/lib64/libssl.so.10: no version information anailable

也就是这个 libssl.so.10 找不到适合的版本。

回想一下我做了什么?

编译了一个动态库,放到 /usr/project/bin 目录下,为了让我的程序能用上这个动态库,得打开 /etc/ld.so.conf,把 /usr/project/bin 这个路径加入,再执行 ldconfig。

这么看来,只有 ldconfig 有可能导致这个问题

进入 /usr/lib64 目录 ll libssl*看看,当前 libssl.so.10 指向的路径是 libssl.so.1.0.1e-bak,而已修改时间就是在执行完 ldconfig 后不久,还有一个库是 libssl.so.1.0.0 。那试试把软连接更改一下: ln -sf libssl.so.1.0.0 libssl.so.10。再运行程序就没问题了。

问题找到了:执行 ldconfig

默认搜寻/lilb和/usr/lib,以及配置文件/etc/ld.so.conf内所列的目录下的库文件。

搜索出可共享的动态链接库,库文件的格式为:lib***.so.**,进而创建出动态装入程序(ld.so)所需的连接和缓存文件。

缓存文件默认为/etc/ld.so.cache,该文件保存已排好序的动态链接库名字列表。

ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。

在执行 ldconfig 时,会搜索出可共享的动态库连接,将 libssl.so.10 指向更新的 libssl.so.1.0.1e-bak 。但是这个 bak 可能有点问题吧!所以使用 ldconfig 可以用 -n 参数,仅扫描命令行指定的目录,不扫描默认目录(/lib,/usr/lib),也不扫描配置文件/etc/ld.so.conf所列的目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值