Compilation 是否为多种架构编译游戏/程序?

Compilation 是否为多种架构编译游戏/程序?,compilation,computer-architecture,Compilation,Computer Architecture,这可能是一个很大的宽泛和有点愚蠢,但这是我从来没有理解 除了Java,我从来没有处理过需要编译的代码,我想Java是两把椅子之间的东西,所以就这样 我不明白游戏和程序是如何编译的。它们是否针对多种体系结构进行编译?或者它们是在安装过程中编译的(看起来不是这样的) 据我所知,代码需要基于本地架构进行编译,以使其正常工作。这意味着你不能为AMD编译一些东西,并“复制”二进制文件,然后在运行Intel(或类似产品)的计算机上执行它们 这里是否有我误解的地方,或者他们使用的方法与我所介绍的示例不同?AM

这可能是一个很大的宽泛和有点愚蠢,但这是我从来没有理解

除了Java,我从来没有处理过需要编译的代码,我想Java是两把椅子之间的东西,所以就这样

我不明白游戏和程序是如何编译的。它们是否针对多种体系结构进行编译?或者它们是在安装过程中编译的(看起来不是这样的)

据我所知,代码需要基于本地架构进行编译,以使其正常工作。这意味着你不能为AMD编译一些东西,并“复制”二进制文件,然后在运行Intel(或类似产品)的计算机上执行它们


这里是否有我误解的地方,或者他们使用的方法与我所介绍的示例不同?

AMD和Intel是制造商。您可能会想到amd64(也称为x86_64)与x86。顾名思义,x86_64基于x86

运行64位x86_64操作系统的计算机通常可以运行x86应用程序,但事实并非如此。因此,一种可能性是推出32位x86游戏,但这限制了每个进程可以访问的RAM数量。不过,对于一场比赛来说,这可能还不错


一个更大的问题是针对不同的平台,如Playstation和(Windows)PC。Playstation不仅具有完全不同的CPU架构(单元),而且具有不同的操作系统

在这种情况下,您不能简单地交叉编译,这是因为操作系统的不同。你必须有两个不同版本的游戏-共享一堆通用代码和媒体文件(也称为资产)-一个用于PC,一个用于Playstation

理论上,你可以用Java来解决这个问题。。。但这只有在JVM可用于所有目标平台时才起作用。此外,Java市场现在出现了碎片化,例如Android支持与JME不同的API。iPhone和iPad根本不支持Java


许多游戏发行商实际上并不使用Java。Mojang是一个例外。

在这种情况下,您通常会交叉编译。这意味着您在另一个平台上为一个平台(体系结构/操作系统组合)编译二进制文件。您可以在(X86)上为Android(ARM)编译二进制文件。我假设playstations的二进制文件也在X86平台上编译。是的,对不起,我的意思是你不能简单地为另一个平台交叉编译你现有的应用程序。谢谢你澄清这一点。这很有道理,我现在明白了,我误解了编译源代码的工作原理。谢谢