2 erreurs dans Xcode : avec libtool et lxml2 |
Bienvenue invité ( Connexion | Inscription )
2 erreurs dans Xcode : avec libtool et lxml2 |
7 Jun 2012, 20:13
Message
#1
|
|
Adepte de Macbidouille Groupe : Membres Messages : 93 Inscrit : 7 Sep 2007 Membre no 94 325 |
Salut,
je recherche un peu d'aide pour faire fonctionner mon projet xcode : j'ai 2 erreurs lors de la compilation : Citation /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: can't locate file for: -lxml2 /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: file: -lxml2 is not an object file (not allowed in a library) /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: file: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib/libz.dylib is a dynamic library, not added to the static library Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool failed with exit code 1 j'ai trouvé ce tuto qui disait d'ajouter " -lxml2 " dans "Other linker flags", ce que j'ai fait, mais j'ai cette erreur? la 2e erreur, peut être reliée à la 1ère : me donne ça : Citation ld: library not found for -lcocos2d libraries collect2: ld returned 1 exit status Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-g++-4.2 failed with exit code 1 Cocos2d marchait très bien avant que j'importe GDataXML comme dans le tuto ci-dessus : quand je teste cocos2d il se lance bien, mais depuis que j'ai rajouté les fichiers de la librairie xml, ça me donne ces 2 erreurs. Sauriez-vous comment les régler? Merci |
|
|
7 Jun 2012, 21:21
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 490 Inscrit : 19 Aug 2004 Lieu : 92 Membre no 22 254 |
Ah si les gens lisaient les mode d'emploi plutôt que d'appliquer bêtement des tutos sans réfléchir à ce qu'ils font ...
Avant d'ajouter une directive "-l" avec un nom de librairie, il faut définir le chemin vers le répertoire dans lequel se trouve cette librairie avec une directive "-L". En général seul /usr/lib est connu par défaut du compilo. |
|
|
8 Jun 2012, 12:16
Message
#3
|
|
Adepte de Macbidouille Groupe : Membres Messages : 93 Inscrit : 7 Sep 2007 Membre no 94 325 |
merci, peux-tu m'expliquer davantage? -Lxml2 ne me donne rien, en regardant sur d'autres forums, j'ai vu qu'on pouvait aussi rajouter " libxml2.dylib " dans "build phase". Sous Xcode 3, je fais click + droit sur le nom du projet dans xcode > Add > Add existing framework, mais je n'ai pas de liste de framework à sélectionner. Peux-tu m'aiguiller?
|
|
|
8 Jun 2012, 21:45
Message
#4
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 490 Inscrit : 19 Aug 2004 Lieu : 92 Membre no 22 254 |
Avant d'ajouter une directive "-l" avec un nom de librairie, il faut définir le chemin vers le répertoire dans lequel se trouve cette librairie avec une directive "-L".
Ce message a été modifié par ntx - 8 Jun 2012, 21:46. |
|
|
9 Jun 2012, 12:17
Message
#5
|
|
Adepte de Macbidouille Groupe : Membres Messages : 93 Inscrit : 7 Sep 2007 Membre no 94 325 |
bon j'avance... un truc quand même : tu sais que c'est pas forcément évident? c'est plus simple quand tu l'as déjà fait, mais pour l'instant j'ai AUCUNE idée d'où aller chercher mes librairies, etc.
est-ce que tu me répondre sans écrire en caractère 28 à ces questions? d'abord j'ai finalement trouvé le dossier libxml2 dans "Developer > ... IOS Platform etc." - où est-ce que le dossier "Developer" apparaît? j'ai du faire une recherche spotlight pour tomber sur ce dossier, comment avoir directement accès à ce dossier? sinon, quelle est la différence entre xml2 et libxml2 ? je n'ai trouvé nul part marqué "xml2" seulement, comment trouver ce chemin? merci de ton aide |
|
|
9 Jun 2012, 14:07
Message
#6
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 490 Inscrit : 19 Aug 2004 Lieu : 92 Membre no 22 254 |
Quand tu installes l'OS, les librairies fournies par Apple sont mises en général dans /usr/lib (c'est le cas du libxml2.2.dylib). Pour les librairies que tu vas récupérer sur le web, c'est à toi d'organiser les fichiers sur ta machine et à décider où tu veux les mettre. Pour ma part, elles vont dans /usr/local/lib pour ne pas interférer avec ce qui est installé par l'OS.
La directive "-l" ne demande pas le nom complet de la librairie : si tu mets "-ltoto", le compilateur, ou plutôt le linker, va chercher dans tous les chemins de répertoire définis (par défaut ou par une directive -L), ce qui s'appelle libtoto.dylib (nom Mac OSX des librairies dynamiques), libtoto.so (nom UNIX des librairies dynamiques) ou libtoto.a (nom UNIX de librairies statiques) PS : pourquoi appeler xml2, les API XML de Cocoa ne te suffisent pas ? |
|
|
13 Jun 2012, 19:19
Message
#7
|
|
Adepte de Macbidouille Groupe : Membres Messages : 93 Inscrit : 7 Sep 2007 Membre no 94 325 |
merci, c'est sympa d'avoir répondu.
Pour le xml, je ne connais pas le système xml par défaut de cocoa, est-ce que tu parles de encoder decoder? J'ai vu cet exemple avec GDataXML et j'ai voulu commencer avec ça. Est-ce qu'il faut faire ça de cette façon (j'ai rajouté un dossier myLocal à côté de lib et include, et j'ai mes 2 fichiers .h et .m dans GDataXML) : -L/usr/myLocal/GDataXML tous les autres dossiers dans include n'ont qu'un ".h", et pas de ".m" ? en faisant "-L/usr/myLocal/GDataXML", j'ai plein d'erreurs : exemple avec le screenshot : Capture_d_____cran_2012_06_13____20.21.49.png ( 83.01 Ko ) Nombre de téléchargements : 4 Dernière petite chose : j'ai plein de dossiers "Developer", dont un dans IphoneOs4.3.sdk, or je dois aller directement dans "usr" pour avoir ma librairie en question, (dans cet autre Developer, il y a aussi un autre usr, lib, include, etc. mais pas la librairie libxml2), sous Snow Leopard je pouvais aller dans l'icône "Disque dur" dans la barre latérale, et voir "Developer", mais avec Lion, ca a été remplacé par un résumé de mes fichiers récents. Sais-tu comment avoir accès à ce dossier, et avoir un raccourci avec l'icône? (comme Téléchargements, Public, et tous les autres dossiers par défaut) Merci encore de ton aide Ce message a été modifié par Laligopate - 13 Jun 2012, 19:20. |
|
|
13 Jun 2012, 19:56
Message
#8
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 490 Inscrit : 19 Aug 2004 Lieu : 92 Membre no 22 254 |
Si libxml.dylib est dans le répertoire /usr/mylocal/lib il faut mettre "-L/usr/mylocal/lib -lxml".
Dans les répertoires include il est normal de trouver que des .h, les .m sont les sources qui n'ont pas à être connues des utilisateurs d'une librairie qui n'a accès qu'à des binaires compilés. Je pense qu'avant de continuer sur ton projet, il faudrait que tu te renseignes un peu sur la façon dont fonctionnent le C et les compilateurs/linkers. |
|
|
13 Jun 2012, 22:36
Message
#9
|
|
Adepte de Macbidouille Groupe : Membres Messages : 93 Inscrit : 7 Sep 2007 Membre no 94 325 |
exact, c'est la librairie xml à importer, je me suis un peu perdu dans mon précédent message.
Bon en fait, si usr/lib est connu par défaut par le compilateur, pourquoi est-ce que ça ne l'importe pas? j'ai réessayé avec : header search paths : /usr/include/libxml2 other linking... : -L/usr/lib -lxml2 ou : other linking... : /usr/lib -lxml2 ou other linking... : /usr/lib -lxml mais j'ai ce genre d'erreur : Citation __ /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: can't map file: /usr/lib (Invalid argument) /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: can't locate file for: -lxml2 __ /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: can't map file: /usr/lib (Invalid argument) J'ai essayé sans importer GDataXML. Dans usr/bin j'ai : libxml2.2.dylib , un "raccourci" (avec la flèche dans le coin bas gauche) de : libxml2.dylib un autre raccourci : libxml2.2.7.3.dylib et le fichier .la : libxml2.la ? |
|
|
14 Jun 2012, 17:47
Message
#10
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 490 Inscrit : 19 Aug 2004 Lieu : 92 Membre no 22 254 |
Quelle version de Xcode ? Dans la version 4, tu as un champ "Librairy Search Paths" pour le chemin de ton fichier dylib.
Dans la version 3, tu dois avoir un champ "Other Linker Flag" pour y mettre "-L/usr/lib -lxml2" Sinon un simple glisser-déposer du fichier dylib dans ton projet doit mettre à jour la configuration. |
|
|
14 Jun 2012, 23:52
Message
#11
|
|
Adepte de Macbidouille Groupe : Membres Messages : 93 Inscrit : 7 Sep 2007 Membre no 94 325 |
Merci! ok ça marche avec XCode 4, en 2 secondes, ça va me décider à passer sur xcode 4 sans hésitations
Ce que j'ai fait sur xcode 3 ne marchait pas, voilà un résumé : Capture_d_____cran_2012_06_15____00.53.14.png ( 88.93 Ko ) Nombre de téléchargements : 4 La même chose fonctionne sur Xcode 4... en tout cas merci de tes messages, je peux enfin commencer! mais bon ça m'a permis d'apprendre quelques trucs intéressants! merci à toi ! |
|
|
Nous sommes le : 26th April 2024 - 13:45 |