以从某个网站下载的程序为例,可以从不同的选项中选择常用的操作系统(Linux,Mac,Windows),但是CPU体系结构呢?该程序是二进制可执行文件。它只是假设amd64吗?还是将程序编译到所有受支持的体系结构中,并与顶部的脚本一起打包在一起,以选择合适的脚本?

我只对C感兴趣,想知道它是如何实现的。



经过进一步的调查,由于下面的个人提供了可爱的信息,我遇到了Fat Binaries在Mac和Linux上均受支持。好像Windows supports一样。

最佳答案

Mac OS X二进制格式包括一种用于在同一文件中为多种体系结构提供代码的机制,因此单个Mac应用程序可以支持32位和64位x86。在过去,PowerPC的支持也是可能的,尽管现在已经过时了。但是对于Windows和Linux,通常每个CPU体系结构都需要单独的二进制文件(正如评论所指出的那样,尽管与标准做法相去甚远,也有可能对类似的东西进行评审)。默认值(到目前为止)是amd64,但有时您仍会看到32位计算机的单独下载。在这方面,世界曾经变得更加有趣,但是如今,事物比以往任何时候都更加标准化。

关于c - 单个编译的C程序如何在多个体系结构上运行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27821531/

10-14 10:19