Bonjour,
J'utilise un langage pour les stats, R, logiciel libre. Il y a une commande pour compiler et créer des objets partagés (shared object, xxx.so) qui sont utilisés dans un programme R que j'ai développé.
Cet objet est obtenu à partir d'un fichier de routines F90 et d'un fichier C. La commande de compilation/link est:
$>R CMD SHLIB -o lib.so fic1.f90 fic2.c
ce qui est interprété par:
$>gcc -I/home/logitec/R-2.3.0/lib/R/include -I/home/mcad003/LIB/include -I/usr/local/include -fpic -g -O2 -std=gnu99 -c fic1.c -o fic1.o
$>gf95 -fpic -g -O2 -c fic2.f90 -o fic2.o
$>gf95 -shared -L/usr/local/lib -o lib.so fic1.o fic2.o -L/home/mcad003/LIB -lcalcul -L/home/logitec/lib -lemos
A noter que gf95 utilise (apparemment) gfortran.
A l'exécution du programme, j'obtiens une erreur disant que les fonctions f90_allocate3 et f90_deallocate13 ne sont pas trouvées. En effet, en regardant la table des symboles par:
$>nm -g lib.so
j'obtiens:
U f90_allocate3
U f90_deallocate13
Je n'arrive pas à retrouver ces fonctions qui ressemblent à une interface entre le C (ou le langage à la base de R) et le F90.
Sur le Net, rien d'intéressant sur f90_allocate3.
Au secours.
Merci.
Partager