ELF二进制文件在不同的linux distibutions中

时间:2016-11-12 10:50:54

标签: linux elf

如果我有一个使用gcc或QtCreater在Ubuntu中生成的ELF二进制文件,这个二进制文件是否可以在另一个Linux发行版中执行,例如RHEL?
(我猜纯CLI程序可以,但GUI程序依赖)
32位二进制文​​件可以在64位机器上运行,反之亦然吗?

1 个答案:

答案 0 :(得分:1)

是。只要架构兼容,ELF二进制文件就可以在不同的系统上运行。也就是说,32位x86 ELF可以在64位x64系统上运行。

那就是说,这并不意味着你的程序甚至会启动。它仍然需要满足所有运行时依赖性。这尤其包括程序使用的每个共享库。如果它们在运行的机器中不可用,程序将无法工作。

您可以使用objdump -p <program | grep NEEDED检查所需的共享库。如果它们不适用于您的taget系统,您还可以分发SO文件并修改LD_LIBRARY_PATH以加载它们。

但即使满足共享库,也不能保证程序正常工作。您仍然可能会错过配置文件,字体,系统服务,内核功能......您必须在每个要支持的发行版上测试它。

PS:总而言之,CLI和GUI程序之间的问题在概念上并不相同。只是GUI程序往往有更多的依赖...