加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

c – 如何链接到旧版本的共享库

发布时间:2020-12-13 19:10:28 所属栏目:Linux 来源:网络整理
导读:我正在我的计算机上构建程序,libtiff.so > libtiff.so.5. 然后在另一台机器上推动构建,其中libtiff.so > libtiff.so.4. 在运行时,我的程序存在:?加载共享库时出错:libtiff.so.5:无法打开共享对象文件:没有这样的文件或目录?. 我无法升级其他机器,我想避

我正在我的计算机上构建程序,libtiff.so – > libtiff.so.5.
然后在另一台机器上推动构建,其中libtiff.so – > libtiff.so.4.

在运行时,我的程序存在:?加载共享库时出错:libtiff.so.5:无法打开共享对象文件:没有这样的文件或目录?.

我无法升级其他机器,我想避免在虚拟机上编译(使用与执行机器相同的linux版本).因此,我想强制编译器使用libtiff.so.4而不是libtiff.so.5.

我在我的计算机上安装了libtiff.so.4(以及libtiff.so.5).如何强制与此版本的链接而不是新版本.我想过移动libtiff.so – > libtiff.so.4,但是如果它需要最新版本,我害怕破坏我的系统(apt-get purge libtiff5给出错误,因为其他一些包需要它).

是否可以链接到较旧(已安装)的库版本?如果有,怎么样?
将libtiff.so的符号链接更改为旧版本是否有害?如果没有,它会解决我的问题吗?

最佳答案
您可以使用此语法链接到库的特定版本:

gcc [other options] -l:libtiff.so.4

您不需要指定路径;搜索通常的目录以便找到库.

注意:正如Michael Wild所提到的,您应该安装该版本的头文件而不是最新版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读