不同版本的共享库

Posted

技术标签:

【中文标题】不同版本的共享库【英文标题】:different versions of the shared library 【发布时间】:2014-10-30 05:24:19 【问题描述】:

我的 makefile 中有一个 -lelf 选项,我想知道:它如何选择要链接的 libelf.so 版本(例如 libelf.so.0libelf.so.1)?我的系统中有一个libelf.so.1,还有一个链接到libelf.so.1libelf.so。当我编译代码时,一切都很好,但是,当我尝试运行二进制文件时,它报告:“找不到 libelf.so.0”。有解决这个问题的指南吗?提前致谢。

【问题讨论】:

【参考方案1】:

好吧,我终于明白了。我可以在编译时指定 .so 的哪个版本(我可以强制它链接到 libelf.so.1,虽然它会在运行时引起一些问题)。看来最好的办法还是找到所需的 libelf.so.0。

【讨论】:

以上是关于不同版本的共享库的主要内容,如果未能解决你的问题,请参考以下文章

在 OS X 上的 OpenGL 上下文之间共享数据(不同的版本/配置文件)

根据用户配置在运行时链接共享对象

C++基础语法梳理:链接装载库丨Linux 的共享库

在通过网络文件系统共享的 HOME 下安装 C C++ 库

在线程之间共享资源,在不同的Java版本中使用不同的行为

在virtualenv中使用不同的Python版本