0

我编译了一个程序,它依赖于tiff共享库,在我的电脑上,库的版本是libtiff.so.4,但是它不能在另一台电脑上运行(tiff的主版本号是5,libtiff.so.5 )。
任何人都有解决这个问题的好方法。
谢谢

linux-gate.so.1 => (0xb76f3000)       
libtiff.so.4 => not found   
libQtGui.so.4 => /home/ken/wpsenv/3rdparty/qt/lib/libQtGui.so.4 (0xb69cb000)
4

2 回答 2

2

共享库版本(称为“soname”)的想法是反映二进制兼容性。当您的程序链接到 libtiff.so.4 时,这就是它需要的版本。libtiff.so.5 将是与 libtiff.so.4 不兼容的较新库。(这里的版本号不需要与项目的官方版本匹配,.4 和 .5 应该反映二进制向后兼容级别)。

您有 2 个选择:

  • 安装所需的 libtiff 库。许多发行版将提供可以共存的不同版本的库。
  • 重新编译应用程序,使其链接到 libtiff.so.5
于 2013-09-18T08:58:15.887 回答
0

如果这是一个选项并且 libtiff.a 存在于您的系统上,则将 libtiff.a 静态链接到您的程序。

gcc main.c path-to-libtiff.a -o myprog

于 2013-09-18T08:59:16.663 回答