当尝试在linux下启动第三方二进制文件时,我经常会遇到“libX.so.0”的错误,即使libX.so位于我的/ usr / lib中也是如此。我一直认为只需将/usr/lib/libX.so软连接到/usr/lib/libX.so.0即可,但我似乎错了。
/usr/lib/libpng12.so.0: version `PNG12_0' not found
此名称中的_0是否与libpng12.so.0中的.0相关?如果是这样,究竟是什么意思?有没有办法从PNG12_0
标识符或libpng12.so.0名称中识别我需要下载的源代码版本?
答案 0 :(得分:1)
我经常遇到“libX.so.0”的错误,即使libX.so位于我的/ usr / lib
您可以阅读有关外部库版本控制here的信息。
此名称中的_0是否与libpng12.so.0中的.0相关?
很可能是的。
如果是的话,究竟是什么意思?
符号版本控制是库版本控制的GNU扩展。我找不到它的好描述,但是它允许单个外部版本库(例如libc.so.6
)提供相同符号的多个不兼容的实现(在符号版本控制之前,你每次引入不兼容的接口时都必须更新库的外部版本;但是如果没有符号版本控制,则必须更新。
长话短说:_0
意味着开发人员认为它意味着什么。