11

我正在使用 cocos2d-iphone (develop-v2) 和 xcode 5 并在尝试归档我的应用程序时出现此错误:(而不是在我编译它时)

libs/kazmath/src/neon_matrix_impl.c:64:15

error: unknown register name 'q0' in asm
         : "memory", "q0", "q1", "q2", "q3", "q8", "q9", "q10", "q11", "q12", "q13", "q14", "q15" //clobber
                     ^
libs/kazmath/src/neon_matrix_impl.c:93:15: error: unknown register name 'q0' in asm
         : "memory", "q0", "q1", "q8", "q9", "q10", "q11" //clobber
                     ^
2 errors generated.

如何解决?

4

3 回答 3

35

我不得不更换:

#if defined(__ARM_NEON__)

经过:

#if defined(_ARM_ARCH_7)

在文件中neon_matrix_impl.c

于 2013-11-01T13:26:30.187 回答
9

如果您仅在 neon_matrix_impl.c 中进行更改,这就是 kazmath 中的错误

Undefined symbols for architecture arm64:  
  "_NEON_Matrix4Mul", referenced from:  
      _kmMat4Multiply in libcocos2d-library.a(mat4.o)  
ld: symbol(s) not found for architecture arm64  
clang: error: linker command failed with exit code 1 (use -v to see invocation)

您必须在两个文件中将 ARM_NEON 更改为 ARMARCH_7:

  1. neon_matrix_impl.c
  2. mat4.c

在这两个文件中搜索 #if 并替换它。

#if defined(__ARM_NEON__)

#if defined(_ARM_ARCH_7)

之后 64 位应该可以正常工作。

于 2014-10-17T10:25:28.633 回答
3

#if defined(_ARM_ARCH_7)使用 cocos2D v2.1 编译,但会出现链接错误(在 iPad Air 上)。

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

这个对我有用。

于 2014-03-18T20:58:01.283 回答