Как создать универсальную статическую библиотеку, которая работает для os3.x и os4.x - PullRequest
0 голосов
/ 21 октября 2010

Здравствуйте, я пытаюсь создать статическую библиотеку, которая может быть добавлена ​​в любой проект ios, но я могу только заставить ее работать так, чтобы, если я собираю библиотеку в ios3, она будет работать для проектов ios3, но не для ios4 инаоборот.

Я получаю следующие ошибки:

Неопределенные символы: ".objc_class_name_UIImage", на которые ссылается: literal-pointer @ _ OBJC @ _cls_refs @ UIImage в Test3-Release.a (TestViewController.o) ".objc_class_name_NSNotificationCenter", на который ссылаются из: literal-pointer @ _ OBJC @ _cls_refs @ NSNotificationCenter в Test3-Release.a (Test.o)

Так выглядиткак будто он не находит Foundation и UIKit-каркасы для библиотеки?

Вот что я сделал до сих пор:

У меня есть 2 проекта: 1 - это проект библиотеки с целью построения библиотеки.Другой - это тестовый проект, который пытается использовать библиотеку, встроенную в первую библиотеку.

1) Создайте проект со статической целевой библиотекой и добавьте все файлы реализации

2) Добавили библиотеки, такие как UIKit, Foundation и т. Д., В папку «Link Binary with Libraries» и задайте всесвязанные библиотеки имеют слабый тип в моей целевой библиотеке.

3) Построили библиотеку, добавили ее в мой тестовый проект вместе с моими заголовочными файлами.

4) В моем тестовом проектеЯ установил другие флаги компоновщика на -ObjC -all_load для всех конфигураций сборки

Когда я компилирую, это выдает мне кучу ошибок, как будто я не включил никаких фреймворков.

У кого-нибудь естьидеи о том, что мне следует делать?

Подсказка (может быть?) Я также заметил, что добавление каких-либо фреймворков в папку «Link Binary with Libraries» в моей целевой библиотеке, похоже, ничего не делает. Я добавил CoreLocation вв этой папке, но когда я пытаюсь скомпилировать в своем тестовом проекте, он не скомпилируется, пока я не добавлю CoreLocation в папку фреймворков тестового проекта.

1 Ответ

0 голосов
/ 28 апреля 2011

ваш зависимый проект (который использует статическую библиотеку) не имеет связанных библиотек Framewrok.

Просто добавьте в зависимые фреймворки проекта (uikIt, Foundation и т. Д.) Все будет работать нормально.

...