Ответ 1
Мне пришлось заменить:
#if defined(__ARM_NEON__)
по:
#if defined(_ARM_ARCH_7)
в файле neon_matrix_impl.c
.
Я использую 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.
Как это исправить?
Мне пришлось заменить:
#if defined(__ARM_NEON__)
по:
#if defined(_ARM_ARCH_7)
в файле neon_matrix_impl.c
.
Это ошибка в kazmath, если вы просто изменяете только neon_matrix_impl.c
Undefined символы для архитектуры arm64:
"_NEON_Matrix4Mul", на которые ссылаются:
_kmMat4Multiply в libcocos2d-library.a(mat4.o)
ld: символ не найден для архитектуры arm64
clang: ошибка: команда компоновщика не сработала с кодом выхода 1 (используйте -v для вызова вызова)
ответ:
Вы должны изменить ARM_NEON на ARMARCH_7 в двух файлах, neon_matrix_impl.c и mat4.c. После этого 64-бит должен работать нормально.
#if defined(_ARM_ARCH_7)
компилируется с cocos2D v2.1, но связывает ошибки (на iPad Air).
Я обновил свою библиотеку karmath с помощью cocos2D v3 kazmath lib (https://github.com/cocos2d/cocos2d-iphone/tree/develop-v3/external/kazmath).
Это работает для меня.