Pages : 1
#1 Le 27/03/2007, à 13:36
- adri123
librairie plplot + fortran (g77)
Bonjour,
je n'arrive pas a associer la librairie de graphisme scientifique au compilateur gnu fortran g77.
Sur les fedora de ma fac le tout a été installé proprement : pour compiler un programme avec des appels de fonctions plplot il suffit de faire :
$g77 -o monbinaire source.f -lplplot
Après moultes recherche sur Google (c) et de l'aide acharnée de mon prof de méthodes numériques, je n'ai toujours pas la solution.
Pour ce faire j'ai installé les paquets de librairies plplot et leurs dépendances sur ma machine. Voici les paquets installé :
libcsiro0 libgfortran1 libltdl3 libplplot-fortran9 libplplot9 libqhull5 libltdl3-dev libplplot-c++9c2 libplplot-dev libqhull-dev plplot9-driver-gnome2 plplot-bin plplot9-driver-xwin autotools-dev libtool
Mais la commande de compilation me retourne :
adri@poivron-vert:~/cours/mn2/projet/partie1$ g77 -o affiche_geometrie affiche_geometrie.f -lplplot
/usr/bin/ld: ne peut trouver -lplplot
collect2: ld a retourné 1 code d'état d'exécution
Réponse de du dit prof :
Que le compilateur ne trouve pas la librairie plplot, sans doute parce
qu'elle est rangée à un endroit "inhabituel".La commande que je vous ai donnée ne fonctionne que dans la salle A118 ou
l'installation de plplot est particulière.Sur des installations standards, et je pense que la votre en est une, il
convient d'ajouter au bout de la ligne de compilation, sans oublier les ` :
`plplot-config --libs --with-f77`plplot-config est un script fabriqué à l'installation qui fournit les
bonnes options de compilation et les bons chemins de librairie.
Je n'ai pas la commande plplot-config mais en faisant quelques recherche j'ai vu que c'était un script. Je l'ai trouvé a cette adresse : http://stuff.mit.edu/afs/athena.mit.edu/software/gdl_v0.9p3/arch/i386_linux26/bin/plplot-config
Je pense que c'est le bon.
Mais la compilation renvoie :
adri@poivron-vert:~/cours/mn2/projet/partie1$ g77 -Wall -o affiche_geometrie affiche_geometrie.f `~/util/plplot-config --libs --with-f77`
plplot_libtool: link: specify a tag with `--tag'
affiche_geometrie.f: Dans le programme `MAIN__':
affiche_geometrie.f:7:
call plsdev('xwin')
^
Caractère non reconnue à (^) [info -f g77 M LEX]
affiche_geometrie.f:7:
call plsdev('xwin')
1 2
élément lexical invalide à (2) dans l'expression ou la sous-expression à (1)
Pour info, le script seul renvoie :
adri@poivron-vert:~/util$ ./plplot-config --libs --with-f77
plplot_libtool: link: specify a tag with `--tag'
Qu'en pensent les gens du forum ?
Hors ligne
#2 Le 28/03/2007, à 14:39
- qqun
Re : librairie plplot + fortran (g77)
Je ne sais pas pour le fortran , mais pour le C ca marche tres bien ,
normalement dans /usr/lib/pkg-config/ tu dois avoir des fichiers du type plplot.pc
pour le C c'est plplotd.pc pour f77 c'est plplotd-f77.pc ect...
donc si tu fait :
pkg-config --cflags --libs plplotd
tu obtient :
-I/usr/include/plplot -lplplotd -lqhull -lcsironn -lltdl -ldl -lm -lcsirocsa -lz -lfreetype
pour f77
pkg-config --cflags --libs plplotd-f77
-I/usr/include/plplot -lplplotf77d -lplplotf77cd -lplplotd -lqhull -lcsironn -lltdl -ldl -lm -lcsirocsa -lz -lfreetype
pour compiler l'exemple x01c.c en C dans /usr/share/doc/libplplot-dev/examples/c
gcc x01c.c -o x01ctest `pkg-config --cflags --libs plplotd`
voila en tout cas pour le C cela marche , j'espere que cela t'aideras , mais tu devrais lire les README dans /usr/share/doc/libplplot-dev/ dont le README.pkg-config .
#3 Le 28/03/2007, à 17:59
- adri123
Re : librairie plplot + fortran (g77)
Merci qqun!!!
c'était bien la bonne manip!
Cette commande compile :
adri@poivron-vert:~/cours/mn2/projet/partie1$ g77 -Wall -o affiche_geometrie affiche_geometrie.f `pkg-config --cflags --libs plplotd-f77`
Ou encore (équivalent, finalement) :
adri@poivron-vert:~/cours/mn2/projet/partie1$ g77 -Wall -o affiche_geometrie affiche_geometrie.f -I/usr/include/plplot -lplplotf77d -lplplotf77cd -lplplotd -lqhull -lcsironn -lltdl -ldl -lm -lcsirocsa -lz -lfreetype
En fait je ne connaissais pas l'existence de la commande "pkg-config"! Je vais me renseigner un peu plus sur le sujet, elle a un bon potentiel!
Juste, une petite correction :
le repertoire /usr/lib/pkg-config/ n'existe pas. c'est /usr/lib/pkgconfig/ !
Quelqu'un aurait une idée pour remplacer le
`pkg-config --cflags --libs plplotd-f77`
par un simple
-lplplot
comme sur les machines de ma fac? A moins qu'un simple alias ne suffise?
Merci encore.
Hors ligne