Bonjour,
Je viens d'apprendre à construire un module et j'essaiE de le compiler et de l'utiliser dans un petit programme Fortran90.
Voici mon programme :
Voici le module :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 program test use test2 real :: c,d print*,'Donnez a et b' read(*,*) c,d write(*,'(f6.2)') toto(c,d) stop end program test
Et voici le makefile que j'utilise pour compiler tout ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 module test2 implicit none contains function toto(a,b) real :: a,b,toto toto = sqrt(a**2 + b**2) end function toto end module test2
Je tape make et ça compile, je n'ai pas de message d'erreur. Ce que je fais, je crée mon exécutable, à savoir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 F90FLAGS = -u -w -O3 FF = ifort #ROOT = nrtype.o nrutil.o nr.o NRMOD = test2.o NR = test.o # Suffix Rules .SUFFIXES: .o .f90 .f90.o: ${FF} -c ${F90FLAGS} $< default: ${NRMOD} ${NR} clean: rm -f *.o *.mod *~
ifort -o test test.o
Et là j'obtiens le message suivant :
Je viens de faire plusieurs forums, je n'ai pas trouvé solution. Quelqu'un pourrait m'aider svp !test.o: In function `MAIN__':
test.f90.text+0xca): undefined reference to `test2_mp_toto_'
Merci à vous
Partager