首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >COCOS2D-X跨平台迷思

COCOS2D-X跨平台迷思
EN

Stack Overflow用户
提问于 2013-08-03 10:55:45
回答 1查看 376关注 0票数 1

我是一个C++开发人员,我对Cocos2d-x框架感兴趣。我知道您可以使用这个框架编写C++代码,为不同的平台编译它--仅此而已,您可以在Windows、Android、iOS上使用2D。这是令人惊讶的,但我不明白它是如何完成的,因此,我担心我为一个平台所做的某些事情将无法在另一个平台上工作。为了更详细地谈一谈,我想谈谈我的担忧。为了做到这一点,让我们澄清什么是compiling,什么是running,代码。

  • 为平台编译C++代码意味着什么(平台是OS + CPU体系结构)?这意味着C++源代码映射到指令,这对于具体的CPU体系结构来说是可以理解的。最后一组指令被打包到一个可执行文件中,这对于一个具体的操作系统来说是可以理解的,这意味着一个具体的SO或者理解如何处理可执行文件的OSes可以运行它。此外,我们不应该忘记,在可执行文件包含的一组指令中,可能存在系统调用。这也是操作系统特有的。
  • 运行可执行文件意味着什么?这意味着操作系统知道特定可执行文件的格式。当您发出运行命令时,OS将其加载到虚拟内存中,并开始一步一步地执行设置好的CPU指令。(很原始,但总的来说,我想是这样的。)

现在回到COSOS2D-X。如何编译C++代码,使其能够被不同的OSes和不同的CPU识别和加载。为了获得适当的.apk、.ipa或.exe文件,我们使用了哪些机制。在使用系统调用或处理器特定的调用时,是否有一个陷阱可以掉下来?一般来说,这些问题是如何解决的?请解释一下这个过程,例如,安卓系统,否则对iOS来说也会很棒。:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-03 20:00:13

Cocos2d-x对于所有目标操作系统和平台都有95%的相同代码。它有5%的代码是为具体的平台编写的。例如,Android有一些Java源代码。还有一些用于iOS的Obj文件.另外,在C++中也有一些针对不同平台的代码。#define用于分隔这段代码。这类代码的示例使用的文件是用C++编写的,但不同平台的文件不同。

生成适当的输出文件是用于目标平台的编译器和SDK的责任。例如,带有clang编译器的xCode将生成iOS构建。而Android NDK和gcc在一起,将构建apk。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18032066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档