У меня есть статическая библиотека, в которой есть еще одна статическая библиотека.
Давайте назовем их LibA и LibB.
LibA — это внешняя библиотека, или, другими словами, LibA вызывает внутри LibB, а LibB не имеет внешних вызовов функций.
Заголовок LibA является extern C, так что имена не искажаются.
Я протестировал эту библиотеку с помощью Swift, и она работает безупречно.
Однако, когда я пытаюсь использовать ее внутри проекта Obj-C, я получаю следующие ошибки:
"_OBJC_CLASS_$_UIResponder", referenced from:
_OBJC_CLASS_$_AppDelegate in AppDelegate.o
"_OBJC_CLASS_$_UIViewController", referenced from:
_OBJC_CLASS_$_ViewController in ViewController.o
"_OBJC_METACLASS_$_UIResponder", referenced from:
_OBJC_METACLASS_$_AppDelegate in AppDelegate.o
"_OBJC_METACLASS_$_UIViewController", referenced from:
_OBJC_METACLASS_$_ViewController in ViewController.o
"_UIApplicationMain", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Я убедился, что и LibA, и LibB созданы для архитектуры x86_64.
Любая помощь очень ценится.
Изменить: я смог решить эту проблему. На этапах сборки мне пришлось добавить UIKit.framework в двоичный файл Link with Libraries. Это исправило ошибки и позволило мне использовать мою библиотеку. Спасибо вам за помощь!
UIResponder
илиUIViewController
, компоновщик потерпит неудачу. ДобавьтеUIKit.framework
к цели вашего приложения. - person Leo Natan   schedule 21.10.2016