IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> 2 erreurs dans Xcode : avec libtool et lxml2
Options
Laligopate
posté 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? huh.gif

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
Go to the top of the page
 
+Quote Post
ntx
posté 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 ... biggrin.gif

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.
Go to the top of the page
 
+Quote Post
Laligopate
posté 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?

Go to the top of the page
 
+Quote Post
ntx
posté 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.
Go to the top of the page
 
+Quote Post
Laligopate
posté 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
Go to the top of the page
 
+Quote Post
ntx
posté 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 ?
Go to the top of the page
 
+Quote Post
Laligopate
posté 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 :

Fichier joint  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.
Go to the top of the page
 
+Quote Post
ntx
posté 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.
Go to the top of the page
 
+Quote Post
Laligopate
posté 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

?
Go to the top of the page
 
+Quote Post
ntx
posté 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.
Go to the top of the page
 
+Quote Post
Laligopate
posté 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 laugh.gif

Ce que j'ai fait sur xcode 3 ne marchait pas, voilà un résumé :

Fichier joint  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! biggrin.gif mais bon ça m'a permis d'apprendre quelques trucs intéressants! merci à toi !
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 26th April 2024 - 13:45