Добавление статической библиотеки в проект iPhone - PullRequest
2 голосов
/ 20 апреля 2009

Мотивация для этого вопроса заключается в том, что я пытаюсь заставить функции LDAP работать с приложением для iPhone, которое представляет собой проект, который я пытаюсь выполнить для части моей диссертации.

При разработке приложения я использовал инфраструктуру ldap.framework, которая является частью Mac OS X. Это прекрасно работает в симуляторе, но когда я пытаюсь теперь загрузить приложение на устройство, оно говорит мне, что я не разрешается использовать эту структуру.

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

В итоге мне удалось скомпилировать конфигурацию и сборку openldap, установив переменные, как указано здесь , и с помощью следующих команд ...

Ade$ ./configure CC=$DEVROOT/usr/bin/arm-apple-darwin9-gcc-4.0.1 \
LD=$DEVROOT/usr/bin/ld --host=arm-apple-darwin --with-yielding_select=yes
Ade$ make depend
Ade$ make

Мне сказали, что файл, который я ищу, будет иметь расширение ".a", поэтому я искал файл ".a", в котором упоминается ldap ...

Ade$ sudo find / -name *ldap*.a
Password:
/Users/Ade/Desktop/openldap-2.4.16/libraries/libldap/.libs/libldap.a
/Users/Ade/Desktop/openldap-2.4.16/libraries/libldap_r/.libs/libldap_r.a

Итак, я предполагаю, что это нужные мне файлы?

Мой вопрос: что мне делать дальше? Я знаю, что мне нужно добавить библиотеку в проект XCode и, возможно, добавить также файлы '.h'?

Если кто-нибудь может дать мне указатель на документацию или пролить свет на следующую стадию, я был бы очень благодарен.

Большое спасибо, Ade

пс. Я также говорил об этом процессе в своем блоге на www.greenpasta.com .

Ответы [ 3 ]

2 голосов
/ 26 мая 2009

Я сделал то же самое, чтобы создать клиент LDAP для iPhoneOS 2.2. Вы просто перетащите .a в стадию сборки "link with library". Я рекомендую использовать обычную (не _r) версию библиотеки, если только вам не требуется повторный вход в ваш ldap (который я не рекомендую). Вы также можете добавить .h к своему проекту, что, как правило, является самым простым способом получить к ним доступ.

1 голос
/ 20 апреля 2009

Просто перетащите файлы .a в проект Xcode и выберите «копировать файлы в проект». Я не знаком с OpenLDAP, но я думаю, что _r-версия является просто поточно-безопасной версией. Я бы порекомендовал использовать это, а не копировать другое. Вероятно, вам не следует копировать оба файла в Xcode, иначе вы получите ошибки ссылок.

Затем сделайте то же самое для файлов .h, которые определяют клиентские API OpenLDAP - опять же, я не уверен, что это, но я уверен, что вы можете легко узнать.

Я бы посоветовал объединить файлы .a и .h в группу Xcode под ресурсами.

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

0 голосов
/ 07 мая 2009

Вам также может понадобиться добавить -lldap к вашей команде компоновщика (на панели настроек сборки).

...