È possibile indicare a gfortran dove si trovano i file del modulo (file .mod) con il flag del compilatore -I
. Inoltre, è possibile indicare al compilatore dove inserire i moduli compilati con il flag del compilatore -J
. Vedere la sezione "Opzioni per la ricerca nella directory" nello gfortran man page.
Io li uso per posizionare sia il mio oggetto (.o file) che i miei file di modulo nella stessa directory, ma in una directory diversa da tutti i miei file sorgente, quindi non ingombrare la mia directory sorgente. Ad esempio,
SRC = /path/to/project/src
OBJ = /path/to/project/obj
BIN = /path/to/project/bin
gfortran -J$(OBJ) -c $(SRC)/bar.f90 -o $(OBJ)/bar.o
gfortran -I$(OBJ) -c $(SRC)/foo.f90 -o $(OBJ)/foo.o
gfortran -o $(BIN)/foo.exe $(OBJ)/foo.o $(OBJ)/bar.o
Mentre l'aspetto di cui sopra come un sacco di fatica di digitare sulla riga di comando, io in genere utilizzare questa idea nei miei makefile.
Solo per riferimento, le equivalenti flag del compilatore fortran Intel sono -I
e -module
. In sostanza ifort sostituisce l'opzione -J
con -module
. Si noti che c'è uno spazio dopo il modulo, ma non dopo J.
hai provato gfortran -I/percorso/verso/il/obj/file? –