Bonjour,
Y-a-t'il la possibilité de faire des compilations conditionnelles en fortran 77 ? (comme en C avec des #ifdef )
Merci.
Bonjour,
Y-a-t'il la possibilité de faire des compilations conditionnelles en fortran 77 ? (comme en C avec des #ifdef )
Merci.
Oui c'est possible, mais ça ne fait pas partie du langage. Le gens utilisent généralement un préprocesseur C. Plusieurs compilateurs ont une switch qui permet d'invoquer le préprocesseur (tu dois lire le manuel). Sinon, tu dois le faire toi même (tu passe la source dans le préprocesseur, puis tu passe le résultat dans le compilateur...)
Merci bien, je suis actuellement dessus.
Du coup je pense séparer -comme tu le proposes- dans mon makefile la partie préprocesseur du reste de la compilation. (j'utilise gfortran, et je compte utiliser le préprocesseur de gcc).
Par contre j'ai un os (et je ne sais pas trop où poser des questions sur les Makefiles pour fortran, j'ai le tuto développez.com du makefile sous les yeux -suis pas fortiche en makefile-, et ai déjà posé ma question ici).
Voici mon Makefile :
et d'après mon résultat, mon .o est directement généré à partir de mon .F .
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
22
23
24
25
26
27
28
29 FC = gfortran FFLAGS = -g -Wall PPCFLAGS = -DDEBUG EXEC = test # Plusieurs objets en général OBJS = test.o PPC= $(OBJS:.o=.i) all : $(EXEC) #lien $(EXEC) : $(OBJS) $(FC) $(OBJS) -o $@ $(LDFLAGS) #construction des .o %.o: %.i $(FC) $(FFLAGS) -c $< #utilisation du préprocesseur %.i: %.F $(FC) $(PCCFLAGS) -o $@ -E $< clean : rm -f $(OBJS) $(PPC) cleanall : rm -f $(EXEC) $(OBJS) $(PPC)
Vous avez une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4make clean all -f MakefileFortran rm -f test.o test.i gfortran -g -Wall -c -o test.o test.F gfortran test.o -o test
Merci beaucoup !
Comme tu utilises gfortran, voici la page de documentation traitant de l'invocation du préprocesseur : http://gcc.gnu.org/onlinedocs/gcc-4....essing-Options
Partager