Importer un framework
chaps31
Membre
Bonjour à tous,
Il y a plusieurs mois j'avais commencé un projet xcode et patatra le portable indispensable pour coder ne m'a plus été disponible, donc gros break (je ne pouvais pas coder sur mon imac le soir et le week-end pour cause de diplomatie familiale...).
Bref, depuisqques jours j'ai un macbook Pro 2.4Ghz, le nouveau, je passe sur le bonheur d'avoir une telle machine, et je me relance dans la programmation. Et je me heurte déjà à un problème que je n'avais pas rencontré avant...
Mon programme utilise une base de donnée PostgreSQL, j'ai trouvé un framework pour utiliser ma base. Dans le .h je met un #import "PostgreSQL/PostgreSQL.h", il trouve ce fichier mais par contre erreur il ne trouve aucun des fichiers header auquel fait appel PostgreSQL.h, pourtant dans le même dossier PostgreSQL...
J'en conclu que je ne place pas le dossier du framework au bon endroit... SOS comment doit-on faire ? Je n'ai pas trouvé la solution dans ce forum ou ailleurs...
Merci
Il y a plusieurs mois j'avais commencé un projet xcode et patatra le portable indispensable pour coder ne m'a plus été disponible, donc gros break (je ne pouvais pas coder sur mon imac le soir et le week-end pour cause de diplomatie familiale...).
Bref, depuisqques jours j'ai un macbook Pro 2.4Ghz, le nouveau, je passe sur le bonheur d'avoir une telle machine, et je me relance dans la programmation. Et je me heurte déjà à un problème que je n'avais pas rencontré avant...
Mon programme utilise une base de donnée PostgreSQL, j'ai trouvé un framework pour utiliser ma base. Dans le .h je met un #import "PostgreSQL/PostgreSQL.h", il trouve ce fichier mais par contre erreur il ne trouve aucun des fichiers header auquel fait appel PostgreSQL.h, pourtant dans le même dossier PostgreSQL...
J'en conclu que je ne place pas le dossier du framework au bon endroit... SOS comment doit-on faire ? Je n'ai pas trouvé la solution dans ce forum ou ailleurs...
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
PS : Vivement que le nouveau bouquin de programmation sorte (fin de ce mois)...
Par contre, utiliser un Framework à inclure dans son bundle est une opération complexe. Il y a déjà un sujet qui en parle.
Il faut rajouter ton framework (où qu'il soit dans le Finder) à ton projet, en faisant glisser le framework dans la fenêtre de projet, dans la partie "Frameworks -> Linked Frameworks". Ou alors, dans Xcode, menu Project, faire "Add to project..." et sélectionner le framework à ajouter à ton projet. Et seulement là ton projet Xcode saura qu'il faut utiliser le framework et saura qu'il peut aller chercher les headers dedans.
Ensuite, si c'est un framework privé que tu souhaites inclure dans le bundle de ton application, il faut s'assurer qu'il y soit copié (il faut ajouter une "Build Phase". Tout ça est décrit dans l'aide de Xcode, il suffit de rechercher le mot clé "framework" par exemple
Après, l'emplacement où est ton framework dans le Finder importe peu (du moment que tu ne le bouges pas tous les 4 matins). Si c'est un framework que tu n'utilise que pour ton projet, tu peux le mettre dans le même dossier que ton xcodeproj, mais tu peux aussi l'avoir mis dans un dossier "MesFrameworks" à côté, ou complètement autre part. Du moment qu'il le trouve au moment où tu compiles et que soit il est copié dans le Bundle soit il est ensuite dans les emplacements standards de OSX (/System/Library/Frameworks, /Library/PrivateFrameworks/, ...) sur les machines sur lesquelles tournera ton appli.
Donc j'ai mon framework et le "include" qui sont dans mon projet mais la 2 problèmes :
- Il ne trouve pas libpq/libpq-fs.h. Ce header est appelé par un autre au sein du dossier include (NB : avec des guillemets dans le import), le dossier include que j'ai ajouté à mon projet et qui contient le fichier qui appel ce libpq/libpq-fs.h contient bien un dossier libpq qui lui même contient un libpq-fs.h Alors pourquoi il ne le voit pas ??? SOS.
- J'ai une panoplie de Warning, du genre : Warning: Multiple build commands for output file /Users/admin/Desktop/Gestovet/Gestovet/build/Release/Gestovet.app/Contents/Resources/CompositePage.html Tous ces warning font référence à des pages html de documentation du framework que j'ai intégré. En effet j'ai ajouté au projet le dossier entier du framework qui contenait la doc.. C'est grave ? Je m'en fout ou je supprime le dossier doc de mon projet dans xcode ?
Merci par avance de vos lumière.
Désolé pour cette erreur dans mon précedent message
Samedi j'achète le nouveau bouquin de prog cocoa
Dans les options du projet en particulier, indiquer les librairies auxquelles ton projet doit se linker (si tu utilises bien un framework encapsulant tes librairies ça se fait tout seul quand tu ajoutes le framework au projet je crois), ajouter éventuellement des "additionnal include path" dans les réglages du projet aussi, vérifier que dans les Build Phases de ton target tu ais bien tout ce qu'il faut...
Sur les cibles, tu demandes les informations, il y a plein de paramètres de compilation dans l'onglet "Build".
Au passage j'ai acheté le bouquin de hillegass, sortie 21 novembre 2008, il m'a l'air très bien.
Donc va falloir que je programme tout ça. J'ai installé postgresql (dernière version livré avec un pkg, impec), là j'ai dans le dossier bibliothèque, un dossier Postgresql8 installé avec (entre autre) un dossier "include" plein de header et un dossier lib. Auriez-vous une source de lecture sur le net où je puisse apprendre comment les utiliser dans mon projet cocoa. Un add to project pour le dossier include, et aussi pour le lib ?
En fait qu'est-ce que ces librairies en .dylib et en .a ??? (je fais l'amalgame entre framework et librairies)
Le dossier "include" avec tout ces .h est un framework ? Quid des .m ?
Il me manque de sacrés bases...
Vous pouvez bien sûr me "dégrossir" si vous en avez le courage je vous en serais éternellement reconnaissant et vous lirais avec attention, mais je suis preneur de saines lectures sur la toile si vous avez des pages où tout se trouve ce qui vous prendra moins de temps, j'ai beau chercher, je ne trouve pas...
Merci :why?:
Comment utiliser une bibliothèque C dans mon code Objective-C....
:crackboom:-
Mais là on parle de postgreSQL qui est sous licence BSD donc pas de problèmes !