2013-10-03 28 views
0

假设我有一些编译并适用于普通i386和x86_64拱门的代码。用于i386和x86_64的Linux单个二进制文件

在DOS/Windows中,可以烘烤一个MZ-PE可执行文件,它可以在DOS中有一个功能,在Windows中可以有另一个功能。或者,在OSX中,可以将i386和PPC拱门合并为一个二进制文件。

Linux中的i386 + x86_64怎么样(没有多元化和这样的东西)?有没有可能,我该怎么做?

回答

1

我用的是从提取该文件在以后的应用程序的压缩副本的shell脚本。在Solaris上受支持的sparc,x86。这是一个相对简单的完成方法,但它只依赖相关平台的相关二进制文件。也就是说,在一个bin-i386bin-x86_64目录中有副本并且在存根外壳脚本中使用$(uname -m)可以更容易地指向相关的二进制文件,例如,

#!/bin/bash -p 

exec ${0%/*}/bin-$(uname -m)/${0##*/} "[email protected]" 

如果你想出货的32位二进制文​​件对于非多拱64位系统,并且因为大多数应用程序将与动态链接进行编译,然后libaries是另外一个问题。如果你不打算做多元化,那么你* *发运所有相关的库(包括运行时链接器ld.so),并使用LD_LIBRARY_PATH来挑选合适的库。

+0

是的,我注意到我雾说,所以我改变了最后一段。它实际上代表了一种情况,我不得不处理在过去 – Petesh

+0

事实上似乎没有更好可以在ELF水平来完成。 – Ruslan

相关问题