Bonjour à tous,
je voudrais appeler une fonction Fortran depuis un fichier c. Je me suis donc renseigné sur la question.
J'ai vu que la principale vigilance à avoir est le fait que le compilo Fortran suffixe le nom des fonctions avec un tiret bas. Donc lors de l'appel en C, il faut appeler en fait le nom de la fonction fortran concaténé au tiret bas.
Donc voici l'appel que je fais en C :
et la fonction Fortran toute bête sur laquelle je fais le test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 extern void fsim_(int *i, float *r); void main() { int i=100; float r; fsim_(&i, &r); }
Si je compile les 2 fichiers indépendamment, pas d'erreurs, pas d'avertissements, tout à l'air de bien se passer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 subroutine FSim(i,r) integer i real r r = i return end
Mais c'est au moment d'effectuer l'éxécution :
Ce qui m'a tout l'air d'être une erreur de linkage. Pourtant j'ai bien inclus le fichier fortran au projet (je suis sous VC6.0).error LNK2001: unresolved external symbol _fsim_
Debug/main.exe : fatal error LNK1120: 1 unresolved externals
Toute suggestion sera la bienvenue !
Merci,
karl3i.
Partager