ошибка при включении моей статической библиотеки в проект iOS - PullRequest
0 голосов
/ 02 ноября 2011

Я пытаюсь включить статическую библиотеку в проект iOS. Я импортировал файл .a и все связанные .h, но затем я получаю эту ошибку:

ld: warning: ignoring file /Users/alexis/Library/Developer/Xcode/DerivedData/PlazappPartnerWorkspace-            cdrmloavlcqouugawmtqywiinqne/Build/Products/Debug-iphoneos/libPlazappPartnerLib.a, file was built for archive which is not the architecture being linked (i386)
Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_LauncherViewController", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я предполагаю, что есть проблема типа архитектуры, но я не понимаю, почему и как ее решить. Может кто-нибудь объяснить мне и сказать, как это решить? Спасибо!

1 Ответ

1 голос
/ 02 ноября 2011

Кажется, ваша библиотека создана для работы на устройстве (архитектура arm), и вы пытаетесь использовать ее в симуляторе (архитектура i386).Проверьте настройки вашей библиотеки.Они должны соответствовать настройкам вашего проекта.

Или, что еще лучше, создайте толстую библиотеку для целей разработки.lipo команда - ваш друг.

Чтобы проверить текущие архитектуры, имеющиеся в вашей библиотеке: (в терминале)


    cd <path to library folder> <i># in you case: /Users/alexis/Library/Developer/Xcode/DerivedData/PlazappPartnerWorkspace-            cdrmloavlcqouugawmtqywiinqne/Build/Products/Debug-iphoneos</i>
    lipo -info libPlazappPartnerLib.a

Вывод должен выглядеть следующим образом:

Architectures in the fat file: libPlazappPartnerLib.a are: <b>armv6 armv7</b>

Они должны соответствовать целевому устройству или симулятору, для которого вы строите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...