gcc-multilib在Ubuntu上到底意味着什么?


11

与较旧的Ubuntu(v.12)挂了很长时间后,我将更新至v.16,并对“ gcc-multilib”的提法感到非常困惑。

这实际上是Apple的“胖二进制文件”或“ 通用二进制文件 ”模型移植到Linux了吗?

也就是说,Ubuntu上的本机C库是否已成为包含用于各种体系结构的多个二进制文件的容器?

如果是这样,我们不再需要在x64系统上专门安装32位运行时库吗?gcc或g ++库的“默认”软件包包含运行和构建32位应用程序所需的全部内容吗?

Answers:


13

gcc-multilib对于交叉编译很有用,也就是说,编译要在不同处理器体系结构上运行的程序。例如,gcc-multilib如果您要在64位Ubuntu上运行,并且想要编译要在32位Ubuntu(或ARM等上运行的程序),则可能需要这样做。


1
那么,它与运行时库无关吗?我们是否仍然需要绕过箍并安装“ libc-i386”,“ g ++-i386”等32位库以在x64上运行32位程序?并且“ dpkg --add-architecture i386”与multilib有关吗?
ddbug '16

是。通常的篮球。dpkg --add-architecture简单地告诉dpkg您您确实要安装外国体系结构的软件包,它应该停止抱怨和请求--force-architecture
AlexP

谢谢AlexP。这个multilib设置是Ubuntu 16的新功能,还是早在v.14甚至12版中就已经存在?
ddbug '16

至少12.04。
AlexP
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.