我是一名 C++ 开发人员,我对 Cocos2d-x 框架很感兴趣。我知道你可以使用该框架编写 C++ 代码,为不同的平台编译它,就是这样,你在 Windows、Android、iOS 上都有你的 2D。这太棒了,但我不明白它是如何完成的,因此,我担心我为一个平台所做的某些事情在另一个平台上不起作用。要详细说明,我想提出我的担忧。为了做到这一点,让我们澄清一下什么是代码compiling
,什么是running
代码。
为一个平台编译 C++ 代码是什么意思(平台是 OS + CPU 架构)?这意味着 C++ 源代码映射到具体 CPU 架构可以理解的指令。最后一组指令被打包成一个可执行文件,该文件对于具体的操作系统是可以理解的,这意味着一个或多个具体的 SO 或了解如何处理可执行文件的操作系统可以运行它。此外,我们不应该忘记,在可执行文件包含的指令集中可能存在系统调用。这也特定于操作系统。
运行可执行文件是什么意思?这意味着操作系统知道特定可执行文件的格式。当您发出运行命令时,操作系统会将其加载到虚拟内存中并开始逐步执行该 CPU 指令集。(非常原始,但总的来说我猜是这样的。)
现在回到 COSOS2D-X。如何编译 C++ 代码,使其能够被不同的操作系统和不同的 CPU 识别和加载。我们使用什么机制来获取适当的 .apk、.ipa 或 .exe 文件。在使用系统调用或特定于处理器的调用时,我们是否会陷入陷阱?一般来说,所有这些问题是如何解决的?请解释这个过程,例如,对于 Android 或者它对 iOS 也很好。:)