我尝试使用makefile将一些模块链接到主程序。
我有一个名为SimParam_mod.f90的模块,其中包含:
MODULE simParam
integer, parameter:: yDim = 80
integer, parameter:: xDim = 80
integer, parameter:: iterper = 100
integer, parameter:: tMax = 2000
END MODULE simParam
使用make选项编译后:
MODDIR =../module
CFLAGS=-I$(IDIR)
OBJDIR=obj
LIBDIR =../lib
LIBS=-lm
CF=gfortran
CFLAGS=-I.
OBJ = main.o D2Q9Const_mod.o SimParam_mod.o
%.o: %.f90
$(CF) -c -O3 -o $@ $< -I$(MODDIR)
run: $(OBJ)
$(CF) -o $@ $^ $(CFLAGS)
不会更新为 iterper 和 tMax 存储的值。我保存正确,用gfortran -c编译的模块没有看到任何问题,并创建.mod文件。
我检查了.mod文件,它们存储的值不是module.f90中指定的值,iterper = 1和tMax = 20,分别应该是100和2000。我所能说的就是我真的不知道如何使用make指令,并且这些存储的错误值是我之前定义的以前的值..有些东西我想念..
提前感谢您的帮助!
Puigar
答案 0 :(得分:0)
我只需添加,因为Mark在makefile中添加了一个命令来删除.o和.mod文件并重新编译程序。在这种情况下效果很好。
只需添加: rm -f * .o
感谢所有对该主题感兴趣的人!
Puigar