Sphero iOS SDK v1.6 — ошибка компоновщика

Я пытаюсь настроить iOS SDK, выпущенный сегодня, и получаю несколько ошибок компоновщика. Я изменил цель развертывания на iOS 7.0 и получил много ошибок компоновщика, затем изменил ее на 6.0 и получил несколько ошибок компоновщика, поэтому я остановился на iOS 6.0. Вот мой вывод

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_RKMCStop", referenced from:
      objc-class-ref in RobotKit(RKMacroObject.o)
  "_OBJC_CLASS_$_RKMCWaitUntilStop", referenced from:
      objc-class-ref in RobotKit(RKMacroObject.o)
      objc-class-ref in RobotKit(RKRobotControl+MacroAdditions.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я дважды проверил свои флаги компоновщика и подключенные библиотеки и не могу найти ничего необычного. Я помещаю это поверх предыдущего проекта, который был настроен и работал с предыдущими библиотеками.


person Alex    schedule 06.11.2013    source источник


Ответы (2)


Судя по всему, вы используете библиотеку, которая не подходит для armv7.

В разделе Xcode -> Настройки сборки -> Архитектуры проверьте свойство «Действительные архитектуры».

У вас есть armv7, попробуйте вместо него использовать armv6.

Также эта проблема может быть связана с тем, что вы используете фреймворк, который больше не доступен в списке ваших фреймворков, или библиотеку, которая не связана (проверьте путь поиска библиотеки) в этом случае.

person Daniel V    schedule 06.11.2013
comment
Я изменил Архитектуры и Действительные архитектуры на armv6 и скомпилировал, но не смог запустить приложение на своем iPad mini. Документация для этой библиотеки находится здесь github.com/orbotix/Sphero-iOS-SDK/blob/master/release%20notes/ и предписывает использовать только архитектуры armv7 armv7s. Эти библиотеки были обновлены сегодня, возможно, библиотека RobotKit не обновлена ​​должным образом? - person Alex; 06.11.2013

Библиотеки Sphero 1.6 RobotKit действительны для armv7 и armv7, но пока не поддерживают arm64. Ошибка, кажется, из-за старой ссылки на библиотеку 1.5. Прежде чем перетаскивать новые библиотеки 1.6 в свой проект, убедитесь, что вы удалили исходный RobotKit.Framework 1.5 и связанные с ним файлы.

Кроме того, максимальная допустимая «Цель общего развертывания» в настоящее время составляет 6.0 из-за несовместимости в XCode5.

person wes felteau    schedule 07.11.2013
comment
Я удалил фреймворки, удалил файлы локально и очистил корзину, очистил проект, построил, чтобы убедиться, что он не нашел его, перезапустил XCode, дважды проверил, чтобы правильное репо было полностью обновлено (94270b44ae), скопировал frameworks и построены, чтобы получить ту же ошибку. Я также начал новый проект только с фреймворком, чтобы иметь ту же проблему. Любые другие предложения? - person Alex; 08.11.2013