2010-04-23 2 views
0

J'ai un programme FORTRAN 95 qui doit effectuer certains appels à la bibliothèque LAPACK. J'ai récemment découvert que Cygwin parce qu'il peut installer LAPACK comme option supplémentaire.Comment: faire référence à la bibliothèque LAPACK à partir de FORTRAN 95 dans Cygwin

Eh bien, LAPACK existe dans le répertoire/lib/lapaquet/"cyglapack.dll". Ayant seulement une formation très informelle dans la programmation Fortran, je n'ai aucune idée de comment référencer une bibliothèque .dll par opposition à un module .mod.

Toutes les suggestions ou les directions d'articles répondant à ma question sont grandement appréciées! (P.S. J'ai recherché d'abord .. Je ne pense pas connaître les termes appropriés pour obtenir un article utile.)

Répondre

0

L'appel conceptuel de Lapack devrait être aussi facile que d'appeler n'importe quelle autre DLL. Vous avez juste à comprendre quels drapeaux de lien et les déclarations à inclure dans votre déclaration (s) de construction. A partir de Fortran, vous déclarerez probablement EXTERNAL les fonctions de Lapack que vous ne voulez pas utiliser. Ceci indique au compilateur de ne pas chercher une définition de la fonction dans vos sources, ou dans un fichier mod, mais que la définition sera fournie au moment de la liaison. C'est là que le plaisir commence, alors que vous essayez de vous assurer que les signatures de vos appels correspondent aux signatures attendues par la DLL.

Je pourrais être en mesure de fournir plus d'aide si vous fournissez plus d'informations. Quel est votre environnement de développement Windows? Quel compilateur Fortran utilisez-vous? Quels outils de compilation et de liaison utilisez-vous? À quoi ressemble votre déclaration de lien actuelle?

0

termes de recherche: dynamic linking fortran

Jetez un oeil à cette page:

http://sources.redhat.com/ml/binutils/2001-12/msg00471.html

Il mentionne en utilisant dlltool pour générer un fichier à partir d'un fichier .a.dll. Vraisemblablement, vous devriez être en mesure de lier à cela de la manière normale (généralement un lib basculer sur la commande de compilation).

Sinon, envisagez d'exécuter un Live CD Linux afin d'éviter le problème en premier lieu! Si vous êtes un étudiant ou un universitaire, voyez si vous pouvez trouver un serveur avec Fortran installé (le personnel informatique est généralement très utile) où vous pouvez compiler et exécuter votre programme.

Questions connexes