#xcode #linker #frameworks #static-libraries #linker-errors
#xcode #компоновщик #фреймворки #статические библиотеки #компоновщик — ошибки
Вопрос:
У меня есть фреймворк Xcode project A и приложение Xcode project B, которое использует двоичный файл фреймворка A.
Когда я пытаюсь создать экземпляр объекта моего фреймворка в своем приложении, он выдает мне эту ошибку ссылки :
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_MyClass", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture arm64
Моя структура arm64
, я проверил lipo -info
.
Символ _OBJC_CLASS_$_MyClass
находится в фреймворке, я проверил с помощью nm mylib | grep MyClass
Я не понимаю, как возможно, что этот символ не найден.
Что может быть причиной этого? Любая помощь будет оценена, большое спасибо..
Ответ №1:
Я решил свою проблему Symbols Hidden by Default
No
, установив значение в настройках сборки.
Или я мог бы также добавить __attribute__ ((visibility("default")))
перед своим классом, если бы хотел сохранить эту опцию и скрыть все остальные символы.