编译Cocos2D-IPHONE v2.x,包括ARM64



当编译CocoS2D-IPHONE v2.x并包括ARM64架构时,会发生错误。错误是在Kazmath的汇编代码中。有解决问题吗?(除了删除ARM64)

libs/kazmath/src/neon_matrix_impl.c:

ASM中未知寄存器名称'Q0'

好吧,也许没什么大不了的...可以通过现有代码充分支持iPhone 5s等。我想这是固定的或将固定在Cocos2d 3.x线中。https://github.com/cocos2d/cocos2d-iphone/issues/534

正确,cocos2d-iphone v3确实成功地为ARM64架构构建,v2.x却没有。

即使编译器警告/错误相对容易解决,但仍存在一些64位兼容性问题(例如cgfloat vs float不匹配和其他),这意味着不建议启用ARM64构建。对于v2.x,除非您准备自己调试和解决这些问题。更重要的是,如果您使用尚未使用ARM64测试的第三方扩展程序,例如Cocos2D-Iphone-Extensions Project中的任何内容。

由于目前没有人被分配在V2.X分支上工作,而且我不希望V2.X完全不收到任何以后的更新,因此最好不包括ARM64代码(无论如何都不会有很多)。然后使用COCOS2D-IPHONE V3开始您的下一个项目。

我在用Cocos2d的一个旧项目中也遇到了这个问题。

我已经下载了cocos2d v3,并将" kazmath"文件夹复制到我的较旧项目,然后更换。

如果您不想更改所有文件,请更改:

#if defined(__ARM_NEON__)

进入

#if defined(_ARM_ARCH_7)

顺便说一句,我正在尝试完全更新到Cocos2d v3,我认为这是正确的解决方案。即使解决了我的问题,总体上仍然存在问题。

cocos2d 2.2现在 64位支持

您可以在此处下载2.2版。

使用Cocos2d v3 kazmath lib(https://github.com/cocos2d/cocos2d/cocos2d-iphone/tree/tree/develop-v3/exterlion-v3/external/kazmath)。

它对我有用(在iPad Air上)

我以这种方式解决:

  1. 按照@appzyourlife的建议下载Cocos2d 2.2
  2. 替换文件夹cocos2dCocosDenshion在Xcode Project文件夹中,带有2.2版的文件夹
  3. 在文件夹中kazmath/src编辑mad4.cneon_matrix_impl.c并替换行:
#if defined(__ARM_NEON__)

#if defined(_ARM_ARCH_7)

最新更新