Multilib 和 Multiarch:这两个术语只是同义词吗?如果不是,它们有何不同?
如果我想在同一个系统中运行 32 位和 64 位应用程序,那么我应该称它为Multiarch 还是 Multilib ?
它们是解决同一一般问题的不同方法,范围略有不同:运行为不同架构构建的二进制文件。
当你得到一个二进制文件来运行时,你需要三样东西:它需要的库(如果有的话,包括它的动态加载器)、对它进行的系统调用的支持,以及解释它包含的机器指令的能力。Multilib 和 multiarch 解决了第一个问题。
Multilib 使用每个架构的已知变体表。这最初是针对 ABI 变体,例如在 MIPS 上,但现在它最常见的用途是 x86 上的 32 位支持:它通常定义lib32为 32 位库目录(并且此定义是特定于 x86 的)。因此,multilib 设置可能会/lib在/lib32. 在编译器方面,您指定-m32使用 multilib 构建 32 位二进制文件。
Multiarch 更通用:它的定义不依赖于主机架构。所有库都位于lib与其目标架构相对应的子目录中;/usr/lib/x86_64-linux-gnu/、/usr/lib/i386-linux-gnu等。在编译器方面,您使用适当的交叉编译器。
使用哪种方法运行 32 位二进制文件取决于发行版。Debian 及其衍生产品现在使用 multiarch,其他发行版使用 multilib。
| 归档时间: |
|
| 查看次数: |
2890 次 |
| 最近记录: |