2009-03-06 10 views
4

J'ai besoin de la libs openssl pour du code C dans mon application iPhone. J'ai donc mis la lib dans mon projet.La compilation dans Xcode échoue car la bibliothèque liée n'est pas trouvée

Mais quand je le compiler, Xcode me jette quelques erreurs:

error: openssl/ssl.h: No such file or directory

C'est mon code pour inclure:

#include <openssl/ssl.h> 

paramètres cibles dans Xcode:

alt text http://img17.imageshack.us/img17/2266/bild3tez.png

Quelle étape me manque-t-il pour le relier co justement?

Répondre

3

Ce n'est pas un problème de liaison. C'est le préprocesseur qui ne peut pas localiser le fichier d'en-tête. Vous devez vérifier où cet entête a fini, et peut-être modifier les paramètres de Xcode (ou de votre projet) pour inclure cet emplacement.

2

Comme cela semble être pour iPhone, vous ne le trouverez pas. OpenSSL n'est pas disponible sur l'iPhone, pas sur les applications tierces de toute façon. Compiler pour le simulateur pourrait fonctionner, car il a toutes sortes de choses que les périphériques réels ne fonctionnent pas. Obtenir ceci à compiler pour le téléphone est un non-starter-- l'en-tête n'est pas trouvé parce qu'il n'est pas là, et si vous le tournez en utilisant une copie différente, il échouera à lier.

+1

Ceci est faux: OpenSSL peut être compilé pour s'exécuter sur les appareils iPhone. – titaniumdecoy

+1

Peut-être que c'est maintenant mais cette réponse a été écrite il y a 19 mois, avant iPhone OS 3 avait expédiés et bien avant l'iOS 4. Il était précis à l'époque, mais bien sûr les choses changent. –

1

Eh bien, quand une bibliothèque liée n'est pas trouvée, je vais maintenant ici pour voir quelle bibliothèque/framework j'ai besoin de lier.

Je sais que votre problème était autre chose, mais cela devrait être utile pour les autres.

http://developer.apple.com/iPhone/library/documentation/Xcode/Conceptual/iphone_development/910-A-iPhone_Simulator_Frameworks/iphone_simulator_frameworks.html

En outre, pour relier les bibliothèques, allez à la zone cible de Xcode. Développez cette zone jusqu'à ce que vous trouviez "link binary with libraries". Faites un clic droit et ajoutez un cadre existant. Cliquez sur le plus en bas puis trouvez la bibliothèque dont vous avez besoin et ajoutez-la.

Questions connexes