gpt4 book ai didi

用于 i386 和 x86_64 的 Linux 单一二进制文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:19:34 26 4
gpt4 key购买 nike

假设我有一些代码可以编译并适用于普通 i386 和 x86_64 架构。

在 DOS/Windows 中,可以烘焙单个 MZ-PE 可执行文件,它可以在 DOS 中具有一种功能,在 Windows 中具有另一种功能。或者,在 OSX 中,可以将 i386 和 PPC arches 组合成单个二进制文件。

Linux 中的 i386+x86_64 怎么样(没有多架构之类的东西)?这可能吗?我该怎么做?

最佳答案

我曾经使用一个 shell 脚本从文件的后面提取应用程序的压缩副本。在 Solaris 上支持 sparc、x86。这是实现它的一种相对简单的方法,但它依赖于仅使用相关平台的相关二进制文件。

也就是说,在 bin-i386bin-x86_64 目录中复制并使用 $(uname -m) 会容易得多> 在 stub shell 脚本中指向相关的二进制文件,例如

#!/bin/bash -p

exec ${0%/*}/bin-$(uname -m)/${0##*/} "$@"

如果您尝试为非多架构 64 位系统发布 32 位二进制文​​件,并且由于大多数应用程序将使用动态链接进行编译,那么 libaries 是一个额外的问题。如果您不打算使用多体系结构,那么您 *必须 * 发布所有相关库(包括运行时链接器 ld.so),并使用 LD_LIBRARY_PATH 以选择合适的库。

关于用于 i386 和 x86_64 的 Linux 单一二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19152824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com