Компиляция cocos2d-iphone v2.x, включая arm64

Ошибка возникает при компиляции cocos2d-iphone v2.x и включении архитектуры arm64. Ошибка в коде сборки для kazmath. можно ли это исправить? (кроме снятия arm64)

ЛИЭС /kazmath/ SRC /neon_matrix_impl.c:

Неизвестное имя регистра 'q0' в asm

Ну, может, ничего страшного... было бы неплохо полностью поддерживать iPhone 5s и т. Д. С существующим кодом. Я предполагаю, что это исправлено или будет исправлено в строке cocos2d 3.x. https://github.com/cocos2d/cocos2d-iphone/issues/534

5 ответов

Решение

Cocos2D 2.2 теперь имеет поддержку 64 бит!

Вы можете скачать форму версии 2.2 здесь.

Правильно, cocos2d-iphone v3 действительно успешно собирается для архитектуры arm64, v2.x - нет.

Несмотря на то, что предупреждения / ошибки компилятора относительно легко исправить, существует ряд проблем с 64-битной совместимостью, которые остаются в v2.x (например, CGFloat vs float mismatches и другие), что означает, что не рекомендуется включать сборку arm64 для v2. х, если вы не готовы отлаживать и устранять эти проблемы самостоятельно. Более того, если вы используете сторонние расширения, которые также не были протестированы с arm64, например, что-нибудь в проекте cocos2d-iphone-extensions.

Поскольку в настоящее время никто не назначен для работы над веткой v2.x, и я не ожидаю, что v2.x получит какие-либо будущие обновления вообще, вероятно, лучше не включать код arm64 (в любом случае, не так уж и много). Тогда начните свой следующий проект с cocos2d-iphone v3.

У меня также была эта проблема в одном из моих старых проектов с Cocos2d.

Я скачал Cocos2d v3, скопировал папку "kazmath" только в мой старый проект и заменил их.

Если вы не хотите менять все файлы, измените:

#if defined(__ARM_NEON__)

в

#if defined(_ARM_ARCH_7)

Кстати, я пытаюсь полностью обновить до Cocos2d v3и я думаю, что это правильное решение для этого. хотя моя проблема решена, она все еще проблематична в целом.

Обновите свою библиотеку карматов с помощью cocos2D v3 kazmath lib ( https://github.com/cocos2d/cocos2d-iphone/tree/develop-v3/external/kazmath).

У меня работает (на iPad Air)

Я решил таким образом:

  1. Загрузка Cocos2D 2.2 здесь как предложено @appzYourLife
  2. Замененные папки cocos2d а также CocosDenshion внутри папки проекта xcode с папками версии 2.2
  3. В папке kazmath/src редактировать mad4.c а также neon_matrix_impl.c и заменить строку:
#if defined(__ARM_NEON__)

с

#if defined(_ARM_ARCH_7)
Другие вопросы по тегам