【问题标题】:makefile .mod compilation rulemakefile .mod 编译规则
【发布时间】:2018-05-13 20:58:36
【问题描述】:

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

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

   # 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

【问题讨论】:

    标签: makefile gnu-make modulefile


    【解决方案1】:

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

    -module <directory> 
    

    查看ifort文档here

    您可以使用模块路径编译器选项来指定目录 在其中创建模块文件。如果您不使用此选项, 在当前目录中创建模块文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 2011-07-20
      • 2012-05-13
      • 2012-06-14
      相关资源
      最近更新 更多