Как собрать ZBar SDK с проектом вместо использования статической библиотеки? - PullRequest
9 голосов
/ 25 марта 2012

Я создаю iOS, проект сканера кода, используя ZBar SDK .Я пытаюсь построить свой проект непосредственно из исходного кода ZBar, а не включать статическую библиотеку libzbar.a.

Я загрузил исходный код ZBar, который включает проект XCode для сборки libzbar.a.Я попытался скопировать все исходные файлы из проекта, но это не сработало.Я продолжаю получать неопределенные ошибки символов.

Какие исходные файлы следует включить, учитывая, что мне нужно поддерживать только iOS?

Следует ли строго соблюдать структуру папок при сборке проекта?

Потребуются ли настройки сборки, если я напрямую включу исходные файлы?

РЕДАКТИРОВАТЬ: Я следовал той же структуре папок и настройкам сборки, которые использовались в проекте XCode libzbar.Мне удалось собрать библиотеку, но она все еще не работает при компоновке.Я получаю ошибку: ld: duplicate symbol _OBJC_METACLASS для всех исходных файлов.Я дважды проверил, нет ли в проекте ссылок на исходную статическую библиотеку libzbar.a или более одного вхождения этих исходных файлов.Если я удаляю ссылки на них, проект строится нормально, но затем завершается неудачно, когда на любой символ из библиотеки ссылаются.Я думаю, что я все еще что-то упускаю !!

Ответы [ 3 ]

3 голосов
/ 30 марта 2012

Я наконец решил эту проблему.Вот шаги, которые я сделал:

1) Скопировал исходные файлы проекта в мой проект.

2) Убрал зависимость libzbar.a из моего проекта.

3) Добавлен путь к папке, содержащей источник и заголовки, в настройку сборки проекта Header Search Paths.

4) В проект добавлены следующие пользовательские настройки сборки:

EXCLUDE_SOURCE_FILE_NAMES
GCC_MODEL_TUNING
PREBINDING и
USE_HEADERMAP

0 голосов
/ 29 марта 2012

Я раньше использовал ZXing lib, и он хорошо интегрировался.Он был включен как проект, и основной проект имеет целевую зависимость для его построения перед основным проектом.Я отредактировал его источники для своих нужд и без проблем с ним работаю.

Я использовал этот учебник .Это может быть полезно и для ваших нужд.

0 голосов
/ 25 марта 2012

Вы должны создать статическую библиотеку самостоятельно из исходного кода, затем добавить выходную статическую библиотеку в свой проект или связать проекты вместе и заставить сборку статической библиотеки перед сборкой проекта.

После загрузки zip-файла из репозитория Mercurial по умолчанию и открытия файла в xCode, нажмите на часть «EmbedReader» раскрывающегося списка выбора цели и переключитесь на «zBarSDK»

Как только вы переключитесь на zBarSDK,просто собрать из меню продукта, и у вас должен быть файл статической библиотеки ....

...