跨同一Linux发行版的不同版本的二进制和共享库兼容性

时间:2013-02-28 09:49:32

标签: linux compatibility

假设我在Linux发行版X ver N上编译了共享库和二进制文件。 它是否适用于相同的分布版本N + 1?

确定这一点的一般规则是什么? (例如gcc / glibc版本,也许是特定于发行版的,LSB等。)

1 个答案:

答案 0 :(得分:3)

首先,检查二进制文件和库的外部依赖关系:

ldd yourlib.so a.out ...

示例输出

  librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f7906ee6000)
  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7906b29000)
  libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f790690b000)

然后检查N + 1中是否所需的库没有显着更改:确定拥有这些库(rpm -qf filedpkg -S file)的包并比较找到的包的版本(N和N + 1)在upstream-tracker

最后,检查gcc的版本是否没有显着变化(从2.x到3.y或从3.x到4.y)。

此外,如果该工具支持N + 1版本的分发版,请尝试在所有二进制文件上使用Linux Application Checker

enter image description here