2009-04-20 7 views
2

La motivation pour cette question est que j'essaie de faire fonctionner les fonctions LDAP avec une application iPhone, projet que j'essaie d'intégrer à ma thèse. Lorsque j'ai développé l'application, j'ai utilisé le framework ldap.framework qui fait partie de Mac OS X. Cela fonctionne très bien dans le simulateur, mais quand j'essaie de l'obtenir maintenant sur un périphérique, il me dit que Je ne suis pas autorisé à utiliser ce cadre. Après quelques recherches, j'ai trouvé que je pouvais construire openldap en utilisant l'architecture de bras et ajouter la bibliothèque statique à mon application destinée à mon appareil.Ajout d'une bibliothèque statique à un projet iPhone

J'ai finalement réussi à compiler configurer et construire OpenLDAP en définissant des variables comme mentionné here et en utilisant les commandes suivantes ...

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 

on m'a dit que le fichier que je suis à la recherche aura une extension de J'ai cherché « .a » si un fichier « .a » qui mentionne 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 

donc je suppose ce sont les fichiers que je besoin?

Ma question est qu'est-ce que je fais ensuite? Je sais que j'ai besoin d'ajouter la bibliothèque au projet Xcode et probablement ajouter une charge de fichiers '.h' aussi?

Si quelqu'un peut me donner un pointeur vers la documentation ou faire la lumière sur la prochaine étape, je serais vraiment reconnaissant.

Un grand merci, Ade

ps. J'ai également parlé de ce processus sur mon blog au www.greenpasta.com.

Répondre

1

Faites simplement glisser les fichiers .a dans le projet Xcode et choisissez "copier les fichiers dans le projet". Je ne suis pas familier avec OpenLDAP mais je pense que la version _r est juste une version threadsafe. Je recommanderais d'utiliser cela et de ne pas copier l'autre. Vous ne devriez probablement pas copier les deux fichiers dans Xcode ou vous obtiendrez des erreurs de lien. Ensuite, faites la même chose pour les fichiers .h qui définissent les API clientes d'OpenLDAP - encore une fois, je ne suis pas sûr de savoir lesquelles sont mais je suis sûr que vous pouvez le trouver facilement.

Je vous conseille d'organiser les fichiers .a et .h ensemble dans un groupe Xcode sous ressources.

Incluez les fichiers d'en-tête dans votre source et vous devriez être prêt à partir.

+0

Salut, J'ai essayé cette méthode mais n'a pas obtenu plus près ... Il y a une autre discussion en cours sur la discussion d'Apple ... Conseils –

0

Vous pouvez également ajouter -lldap à votre commande d'éditeur de liens (dans le volet des paramètres de génération).

2

J'ai fait la même chose pour construire un client LDAP pour l'iPhoneOS 2.2. Vous venez de faire glisser le fichier .a dans l'étape de construction "lien avec les bibliothèques". Je recommande d'utiliser la version régulière (non _r) de la bibliothèque, à moins que vous ayez spécifiquement besoin d'une réentrée sur votre fichier ldap (ce que je ne recommande pas). Vous pouvez également ajouter les .h à votre projet, ce qui est généralement le moyen le plus facile d'y accéder.

Questions connexes