makefile .mod 编译规则

makefile .mod compilation rule

我正在mod验证代码的 makefile。编译后,我看到生成了一些 *.mod 文件。在网上查找,我发现它们是 module 文件,但我没有看到它们的编译规则。我正在尝试更改生成这些文件的目录。我可以更改目标文件的规则,但找不到生成 *.mod 文件的规则。

查看生成文件,如果此文件中的一行生成它们或如何更改它们的目录,有人可以告诉我。这是生成文件:

   # GNU Makefile

   # Paths
   SDIR=./solver
   ODIR=./obj
   _CASE=./WorkCases/problem
   CASE=$(SDIR)/$(_CASE)
   TOP = .  

   FC      =       ifort

   FFLAGS          =       -fpp -O1 -DPTR_INTEGER8 -warn nousage

   # Define rule to make .f90
   $(ODIR)/%.o : $(SDIR)/%.f90 
    $(FC) -c $(FFLAGS) $< -o $@


   # set executable name
   EXEC = $(dir ${CASE})/$(basename $(notdir ${CASE})).out


   # shared global variables
   _SHARED_OBJ =    shared_modules.o main_vars.o debug_vars.o
   SHARED_OBJ = $(patsubst %,$(ODIR)/%,$(_SHARED_OBJ))

   OBJ     =  ${_SHARED_OBJ} $(_CASE).PARAMS.o 
   OBJ = $(patsubst %,$(SDIR)/%,$(_OBJ))

   MAIN_OBJ = $(ODIR)/main.o


   main : ${SHARED_OBJ} $(OBJ) $(MAIN_OBJ) 
    $(FC) ${FFLAGS} $(OBJ) $(MAIN_OBJ) -o $(EXEC) -lstdc++ -shared-intel

您可以使用 -module 编译器选项指定 .mod 文件的目标目录。

-module <directory> 

请参阅 ifort 文档 here

You can use the module path compiler option to specify the directory in which to create the module files. If you do not use this option, module files are created in the current directory.