J'ai des problèmes pour lier plusieurs modules/sous-programmes Fortran dans une bibliothèque partagée. Le truc, c'est que j'ai d'abord eu un programme Fortran autonome, avec tout ça s'est bien passé. Cela consistaitObjets partagés liant Fortran à partir de plusieurs fichiers sources dans une seule bibliothèque
main.f95
mymodule.f95
myutils.f95
Mais maintenant, j'adaptait les choses pour que je puisse appeler le code Fortran de R.
Alors, je jeter le principal main.f95 du programme et j'ai un nouveau fichier, disons
callFromR.f95
qui contient un sous-programme qui sera appelé de R. cette routine doit utiliser le module mymodule
, et ce module a des dépendances sur myutils
. je compile tous les trois objets partagés:
gfortran -shared -fPIC callFromR.f95 -o callFromR.so
gfortran -shared -fPIC mymodule.f95 -o mymodule.so
gfortran -shared -fPIC myutils.f95 -o myutils.so
Maintenant je dois en quelque sorte de combiner les trois d'entre eux dans un fichier objet partagé (pas un fichier objet). Comment puis-je faire ceci?
(Par conséquent, quand je l'appelle le sous-programme callFromR
dans R, certains sous-programmes qui se trouvent dans le code mymodule
sont introuvables.)
Qu'est-ce que cela signifie qu'ils ne sont pas trouvés? Importez-vous les trois fichiers .so ou juste un? –