共享库的主要版本号

时间:2013-09-18 08:52:41

标签: linux

我编译了一个程序,它依赖于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)

2 个答案:

答案 0 :(得分:2)

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

您有两个选择:

  • 安装所需的libtiff库。许多发行版将提供可以共存的库的不同版本。
  • 重新编译应用程序,使其链接到libtiff.so.5

答案 1 :(得分:0)

将libtiff.a静态链接到您的程序,如果您的系统中存在选项和libtiff.a。

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