Компиляция 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)
Я решил таким образом:
- Загрузка Cocos2D 2.2 здесь как предложено @appzYourLife
- Замененные папки
cocos2d
а такжеCocosDenshion
внутри папки проекта xcode с папками версии 2.2 - В папке
kazmath/src
редактироватьmad4.c
а такжеneon_matrix_impl.c
и заменить строку:
#if defined(__ARM_NEON__)
с
#if defined(_ARM_ARCH_7)