我是靠谱客的博主 诚心冥王星,最近开发中收集的这篇文章主要介绍linux 查询库版本,如何查找Linux计算机上安装了哪个版本的libstdc ++库?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我倾向于使用的机制是6.0.10608组合以从libstdc ++转储-V信息,然后使用查找表匹配提取的最大2560843864705860660610值。

readelf -sV /usr/lib/libstdc++.so.6 | sed -n 's/.*@@GLIBCXX_//p' | sort -u -V | tail -1

如果您的6.0.10版本太旧而无法使用-V选项(按版本号排序),则可以使用:

tr '.' ' ' | sort -nu -t ' ' -k 1 -k 2 -k 3 -k 4 | tr ' ' '.'

而不是6.0.10,最多可以按4个版本数字进行排序。

通常,匹配ABI版本应该足够好。

但是,如果您要查找2560843864705860860608,则可以使用一些bash,例如:

file=/usr/lib/libstdc++.so.6

while [ -h $file ]; do file=$(ls -l $file | sed -n 's/.*-> //p'); done

echo ${file#*.so.}

因此,对于我的系统而言,结果为6.0.10。

但是,如果您尝试获取在systemX上编译以在systemY上运行的二进制文件,那么到目前为止,这些事情只会使您感到困惑。 在这些情况下,请携带用于该应用程序的libstdc ++。so副本,然后拥有一个执行脚本,该脚本执行以下操作:

export LD_LIBRARY_PATH=

exec application.bin "$@"

通常可以解决.so的问题,该问题与应用程序的版本不兼容。 对于更极端的环境差异,我倾向于只添加所有依赖库,直到应用程序正常运行为止。 这是linux的等效解决方案,对于Windows,将被认为是dll hell。

最后

以上就是诚心冥王星为你收集整理的linux 查询库版本,如何查找Linux计算机上安装了哪个版本的libstdc ++库?的全部内容,希望文章能够帮你解决linux 查询库版本,如何查找Linux计算机上安装了哪个版本的libstdc ++库?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部