gpt4 book ai didi

动态lib(.so)版本的兼容性

转载 作者:行者123 更新时间:2023-11-30 17:56:35 28 4
gpt4 key购买 nike

我有一个在centos 5上编译并运行的软件,现在我有兴趣在Centos 6上运行它,未经修改,无需在新机器上编译。

这是挑战:-
我的进程需要某些库,例如 libcap.so.1,但 centos 6 有更新的版本,例如 libcap.so.2
我能够使旧软件与以下任何黑客一起工作

  1. 创建到 libcap.so.2 的符号链接(symbolic link)(libcap.so.1)
  2. 将 libcap.so.1 复制到新机器(centos 6)

两者之间有什么推荐,这种方法是否有任何已知问题,在 centos6 上编译将是我的最后一个选择。

最佳答案

创建这样的符号链接(symbolic link)有时会起作用,具体取决于导致新版本的更改到底是什么 - 它们必须是最小的更改,特别是不会删除对旧库具有的任何例程/变量的访问或大幅更改任何剩余例程/变量的签名。如果该库使用符号版本控制(如 gcc 标准 C 库所做的那样),则 .2 版本可能仍包含先前版本提供的完整 API,但我不这样做我完全不知道 libpcap 是否会这样做...

如果新库没有封装旧 API,最安全的选择是重新编译。如果您的应用程序不是关键任务,和/或您可以处理崩溃和数据损坏的可能性,那么尝试符号链接(symbolic link)路由应该不会有什么伤害...

关于动态lib(.so)版本的兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13420182/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com