如何查找为什么 64 位应用程序可以在 14.04 上运行但不能在 12.04 上运行?

如何查找为什么 64 位应用程序可以在 14.04 上运行但不能在 12.04 上运行?

我有一个 64 位应用程序(Xilix Vivado 工具中的 lmutil)。它可以在 14.04 上运行,没有问题。但是当我在 12.04 上运行它时,我得到了错误:

bash: ./lmutil: No such file or directory

有什么办法可以找出其根本原因吗?

附加信息(Ubuntu 12.04):

$ file ./lmutil
./lmutil: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

$ ldd ./lmutil
linux-vdso.so.1 =>  (0x00007fffa25fe000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fcb25bb0000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcb258b4000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fcb2569d000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcb252df000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fcb250db000)
/lib64/ld-lsb-x86-64.so.3 => /lib64/ld-linux-x86-64.so.2 (0x00007fcb25de7000)

答案1

很可能该程序所需的某些功能在 14.04 上可用,但在 12.04 上不可用。

最有可能的是,这个“东西”是 LSB 合规性(Linux 标准库) - 首先要尝试运行apt-get install lsb并查看是否能解决问题。

这个问题在几个地方进行了讨论,权威的解释可能在这里:

https://software.intel.com/en-us/articles/flexlm-license-manager-20-may-fail-when-lsb-3-is-not-met

他们描述了一种解决方法,包括创建适当的链接器/加载器,无论是通过安装还是通过符号链接等效的现有共享库。

相关内容