Как сделать libtiff для проекта Xcode и приложения iOS?

Я искал вверх и вниз stackoverflow и Google для правильного способа компиляции и добавления библиотеки libtiff в мой существующий проект iOS в Xcode.

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

ИЗМЕНИТЬ:

Я загрузил libtiff на свой Mac после того, как решил последовать этому совету в stackoverflow< /а>. Я использовал версию 3.9.6 и построил ее, как в этой руководство и его продолжение о SDK5. Там в комментариях я нашел скрипт, который мог адаптировать. Я добавил результирующую папку «зависимости» в свой проект Xcode, почти как предложено rakmoh.

Однако я получил ошибки компоновщика, как только я #include tiffio.h:

Undefined symbols for architecture armv7:  "_inflateEnd", referenced from:
  _PixarLogCleanup in libtiff.a(tif_pixarlog.o)
  _ZIPSetupEncode in libtiff.a(tif_zip.o)
.
... some more...
.
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я также попробовал новейшую версию libtiff, но это ничего не изменило, поэтому я вернулся к 3.9.6, так как она совместима с другими программами в проекте. Затем я спросил коллегу, который обнаружил, что отсутствует библиотека libz. Судя по файлам журналов, он должен был быть там во время компиляции libtiff и все еще отсутствовал для компоновщика в моем проекте Xcode. И вот! Когда я добавил его в фреймворки (с небольшим знаком + и просмотром списка для libz.dylib), мой пустой тестовый проект скомпилировался.

Прежде чем написать ответ, я хотел бы провести еще несколько тестов, но я уже обновил успешный сценарий оболочки до pastebin.

Спасибо за помощь!


person AOphagen    schedule 18.06.2013    source источник
comment
Для обновленного ответа см. ios будет включать 64-битную архитектуру"> stackoverflow.com/questions/30552074/   -  person Juan Catalan    schedule 02.06.2015


Ответы (2)


Вот шаги по добавлению библиотеки в проект iOS в XCode 4.6.2 (в старых версиях XCode должно быть аналогично):

  • Нажмите на название вашего проекта в навигаторе проектов (левая панель).
  • Нажмите на свою цель и выберите «Фазы сборки».
  • В разделе «Связать двоичный файл с библиотеками» нажмите «+» (в конце существующего списка)
  • Нажмите кнопку «Добавить другое..» во всплывающем окне, откроется окно файлового браузера.
  • Найдите и выберите библиотеку, которую вы хотите добавить, и нажмите «Открыть».
person rakmoh    schedule 18.06.2013
comment
Спасибо большое. К настоящему времени я уверен, что библиотека не скомпилирована для iOS. И я определенно недостаточно хорошо задал этот вопрос. Я отредактирую его, чтобы прояснить мою проблему. - person AOphagen; 18.06.2013

Я вставил скрипт bash, который выполняет кросс-компиляцию libtiff версии 3.9.6 на Mac для iOS 6.1 для использования на устройствах и в симуляторе. Вам придется адаптировать его к вашим потребностям. См. также эту ссылку руководство с подсказками. Он создает толстую библиотеку для обеих целей компиляции.

Ответ rakmoh также правильный, но только часть решения. Вы добавляете папку с толстой библиотекой в ​​диалоге «Добавить другое..», который он предлагает.

Затем вы также добавляете libz.dylib! После этого я мог использовать libtiff в своем приложении на своем устройстве и в симуляторе.

person AOphagen    schedule 04.07.2013
comment
Похоже, это работает только с Xcode 4. Можно ли обновить его для работы с Xcode 5? (компилятор gcc больше недоступен) - person Aaron Bratcher; 10.07.2014
comment
Спасибо за информацию. Моя работа над этим была отменена, потому что такая обработка больших изображений была слишком медленной. Мы больше не пытаемся сделать это с iPhone. Теперь я знаю еще одну причину, почему это было хорошей идеей :( - person AOphagen; 11.07.2014
comment
Недавно я обнаружил библиотеку GPUImage, которая имеет множество фильтров и молниеносно работает на iPhone. github.com/BradLarson/GPUImage - person Aaron Bratcher; 11.07.2014
comment
Обновленный ответ см. в комментарии Хуана Каталана под вопросом. - person AOphagen; 02.06.2015