Compilation + teste

nidhaletec Messages postés 44 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 28 mars 2009 - 25 déc. 2008 à 22:05
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 11 janv. 2009 à 22:06
je cherche a compiler cette bibliotheque: '' http://trac.openstreetmap.org/browser/applications/lib/libosm " et puis tester les programmes test1.cpp, test2.cpp et test3.cpp. Donc comment faire.
Remarque: j'utilise Kubuntu et le compilateur g++.
Merci a tout les gens qui me rependront.

8 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
26 déc. 2008 à 17:43
Salut,

Il se trouve que la librairie est fournie avec un Makefile.

Donc si tu te places dans le répertoire de la lib et que tu tapes :
make all

Ca va compiler.
Et si tu tapes :
make install

Ca va te copier les binaires et les headers dans des emplacements aiséments accessibles pour ton compilo par la suite (Tout est dans le Makefile...).

Pour compiler test1.cpp, j'imagine que :
make test1.cpp

doit fonctionner.

Encore qu'il me paraît bizarre ce Makefile...

Si ça ne compile pas, donne nous la commande qui ne passe pas et le ou les messages d'erreurs associés.
0
nidhaletec Messages postés 44 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 28 mars 2009
26 déc. 2008 à 20:37
Merci beaucoup
Pour la compilation de la librairie ca marche tres bien mais je n'arrive pas a comprendre comment je teste les fichiers test1.cpp,test2.cpp et test3.cpp
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
27 déc. 2008 à 17:22
Bin théoriquement, après make test1 (J'ai mis l'extension en trop ci-dessus), tu devrais obtenir un fichier test1 exécutable.

Après, tu peux ne pas avoir le droit de l'exécuter. A ce moment là il faut que tu fasses un :
chmod u+rwx test1

Ensuite il se peut que . (Le répertoire courant) ne soit pas dans ton path. Il faut alors que tu tapes :
./test1

(Je rappelle que Linux est convivial )

Là il va te dire :
Usage: test InOsmFile OsmUsername OsmPassword

Oui je suis devin en fait. Ou pas. Pour savoir comment fonctionne test1, tu peux chercher une éventuelle doc... Ou regarder le source. En l'occurence, tu verras que ce programme attend 3 paramètres, un nom de fichier, un user et un mot de passe. Visiblement, il va se servir de cet user/mot de passe pour se connecter à http://www.openstreetmap.org/api/0.5". Le fichier quand à lui doit exister, et va être parsé.

Visiblement, il y a deux tests, probablement un sur le fichier et l'autre en interrogeant l'URL. Les deux tests semblent devoir afficher des latitudes et des longitudes de points.

Et ainsi de suite...Si tu n'as pas de doc, faut comprendre le source.
0
nidhaletec Messages postés 44 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 28 mars 2009
2 janv. 2009 à 21:22
ayadi@porsche:~/libosm$ make test1
g++ -o test1 test1.o libosm.a libosmnet.a -L/usr/local/lib -lexpat -lcurl -lshp-lccoord -L../ccoord/
/usr/bin/ld: cannot find -lccoord
collect2: ld gab 1 als Ende-Status zurück
make: *** [test1] Fehler 1
ayadi@porsche:~/libosm$ chmod u+rwx test1
chmod: Zugriff auf „test1“ nicht möglich: No such file or directory


c quoi le probleme???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
5 janv. 2009 à 14:00
Arf de l'allemand. Moi qui ai fait anglais et espagnol.

test1 ne compile pas. Ou plutôt il ne link pas.

/usr/bin/ld: cannot find -lccoord

ld est le lieur. Il ne trouve pas la librairie ccoord (fichier libccoord.a sauf erreur).

collect2: ld gab 1 als Ende-Status zurück make: *** [test1] Fehler 1

Ca, ça doit globalement la conclusion de l'échec du link -> échec de la compilation.

Ensuite, forcément, puisque test1 ne compile pas, le fichier test1 n'existe pas, d'où le "Zugriff auf "test1" nicht möglich: No such file or directory"

J'imagine que ccoord devrait avoir été créée dans /usr/local/lib... Je n'ai plus accès au Makefile de la librairie.

Si tu fais un ls dans /usr/local/lib, as tu libccord.a ?
As tu des messages d'erreur lors du make all et du make install ?
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
5 janv. 2009 à 14:31
Plutôt lent le serveur qui héberge cette lib...

libccoord.a peut être construite à l'aide de ce Makefile. Tu te places dans ce répertoire puis make all.

Ensuite, tu recopies la lib générée dans ton répertoire /usr/local/lib

mv ./libccoord.a /usr/local/lib

et tu retentes de compiler test1.
0
nidhaletec Messages postés 44 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 28 mars 2009
10 janv. 2009 à 22:07
Merci beaucoup pour tes reponses.
tout ca se compile maintenant; j'avais l'erreur car j'ai enregistre la 2eme bibliotheque( http://trac.openstreetmap.org/browser/applications/lib/ccoord ) dans un faut endroit.
Mais ma question pour le moment dans quel endroit je mets le nom de mon fichier OpenStreetMap pour l'execution du test1.
Remarque : Le fichier OpenstreetMap est un fichier d'une carte de routes d'un Sag-Way et a partir duquel je cherche a recuperer des Nodes et des Ways.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
11 janv. 2009 à 22:06
Tu mets le fichier où tu veux sur ton disque, l'important est de mettre correctement son chemin lorsque tu lance test1.

./test1 /usr/toto/OpenstreetMap toto motDePasseDeToto
0
Rejoignez-nous