为啥 linux multiarch 使用 x86_64-linux-gnu 而不是 lib64?

Posted

技术标签:

【中文标题】为啥 linux multiarch 使用 x86_64-linux-gnu 而不是 lib64?【英文标题】:Why does linux multiarch use x86_64-linux-gnu instead of lib64?为什么 linux multiarch 使用 x86_64-linux-gnu 而不是 lib64? 【发布时间】:2012-08-31 23:31:18 【问题描述】:

我最近在 linux 中部署 32 位和 64 位库时遇到了 multiarch。

出于好奇,为什么 /lib64 被放弃了,取而代之的是/lib/x86_64-linux-gnu 这似乎过于复杂,但一定有原因。

【问题讨论】:

这是configure 给定(即猜测)的主机三元组;它考虑了 ABI;例如 x32 是 x86-64 的不同 ABI。 什么时候 - 我没注意到 - 你是怎么发现的? @AdrianCornish:一些发行版采用了 Debian 多架构布局,其他发行版仍然使用 lib64。 @janneb 酷。 - Debian 从来都不是我喜欢的发行版之一。无论如何添加不是 lib 和 lib64 的多架构布局 @AdrianCornish:对不起,我不知道“无论如何添加不是 lib 和 lib64 的多架构布局”应该是什么意思。 【参考方案1】:

长版可以在http://wiki.debian.org/Multiarch找到,特别是http://wiki.debian.org/Multiarch/TheCaseForMultiarch。

简短的版本是,使用三元组是一种更通用的解决方案,它允许使用多个 ABI(例如 x86 和 x32,正如 Basile 在评论中提到的那样)、模拟器、交叉编译器等,而无需求助于各种技巧.

Fedora 或 OpenSUSE 等非基于 Debian 的发行版是否会采用这一点还有待观察;到目前为止,他们似乎没有那么感兴趣。

【讨论】:

以上是关于为啥 linux multiarch 使用 x86_64-linux-gnu 而不是 lib64?的主要内容,如果未能解决你的问题,请参考以下文章

Linux 是不是将 x86 CPU 的 PCID 功能用于 TLB?如果不是,为啥?

qemu-user-static, 在x86机器上编译arm架构docker

ubuntu无法安装ia32-libs库,提示没有可用的软件包

vbox丢失*MultiArch_amd64.msi或者*MultiArch_x86.msi重新制作

../sysdeps/i386/i686/multiarch/strcpy.c:没有这样的文件或目录

linux 系统为啥很安全 ,不中病毒