图书馆版本问题和冲突

时间:2014-09-20 14:52:03

标签: gcc makefile cmake shared-libraries libraries

亲爱的专家社区,

我经常面临软​​件无法编译或工作的问题,因为库(特别是.so文件)太新了。 如果我尝试安装旧库(在Ubuntu上使用apt-get),我可能会遇到错误,因为它不能安装"因为冲突......

因此,我脑子里出现了以下问题: 1)如何在Arch Linux或Ubuntu Linux上安装旧的库/包和更新的库? 2)如何避免冲突:旧图书馆应该只使用"有问题的旧图书馆使用(链接)。软件和/或如果我明确指定? 3)如果安装了特定的(旧)库版本,如果没有自动获取并安装并使用它而不与新版本冲突,我如何检查cmake,make或autotools?

感谢任何专家的帮助

1 个答案:

答案 0 :(得分:0)

  1. Linux软件包管理器通常不允许安装同一软件包的多个版本。您必须亲自手动安装旧版本,最好是安装到/usr/old-versions等私人场所。
  2. 您链接有问题的软件如下:
    <link command> -L /usr/old-versions/lib -Wl,-rpath=/usr/old-versions/lib
    它会自动使用旧版本的库。
  3. 无法自动执行此操作。
  4. 请注意,您可能还需要针对旧版本的库标头进行编译,而不仅仅是针对旧版本的库进行链接。