编译cocos2d-iphone v2.x包括arm64

时间:2014-03-11 02:35:01

标签: ios cocos2d-iphone arm 64-bit cocos2d-iphone-2.x

编译cocos2d-iphone v2.x并包含arm64体系结构时发生错误。错误发生在kazmath的汇编代码中。有没有解决这个问题? (除了删除arm64)

库/ kazmath / SRC / neon_matrix_impl.c:

  

asm

中的未知寄存器名称'q0'

嗯,也许没什么大不了的......用现有代码完全支持iPhone 5s等会很不错。 我想这是固定的或将在cocos2d 3.x行中修复。 https://github.com/cocos2d/cocos2d-iphone/issues/534

5 个答案:

答案 0 :(得分:7)

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

即使编译器警告/错误相对容易修复,v2.x中仍存在许多64位兼容性问题(如CGFloat vs float不匹配等),这意味着不建议启用arm64构建对于v2.x,除非您准备自己调试并修复这些问题。更重要的是,如果您使用未经arm64测试的第三方扩展,例如cocos2d-iphone-extensions项目中的任何内容。

由于目前没有人被指派在v2.x分支上工作,我不希望v2.x接收任何未来的更新,最好不要包含arm64代码(无论如何都不会获得)。然后使用cocos2d-iphone v3开始您的下一个项目。

答案 1 :(得分:3)

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

我已经下载了Cocos2d v3,并将“kazmath”文件夹仅复制到我的旧项目中,并将其替换。

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

#if defined(__ARM_NEON__)

#if defined(_ARM_ARCH_7)

顺便说一下,我正在尝试完全更新到Cocos2d v3,我认为这是正确的解决方案。即使我的问题得到处理,一般来说仍然存在问题。

答案 2 :(得分:2)

使用cocos2D v3 kazmath lib(https://github.com/cocos2d/cocos2d-iphone/tree/develop-v3/external/kazmath)升级您的karmath库。

它适用于我(在iPad Air上)

答案 3 :(得分:2)

Cocos2D 2.2现在有 64位支持

您可以从here下载2.2版。

答案 4 :(得分:0)

我这样解决了:

  1. 按照@appzYourLife的建议下载Cocos2D 2.2 here
  2. 将xcode项目文件夹中的文件夹cocos2dCocosDenshion替换为2.2版文件夹
  3. 在文件夹kazmath/src中修改mad4.cneon_matrix_impl.c并替换行:
  4. #if defined(__ARM_NEON__)
    

    #if defined(_ARM_ARCH_7)