【发布时间】:2016-07-27 15:42:42
【问题描述】:
我的程序是一个使用 intel MKL 的 mpi 程序。为简单起见,我们假设有main.f90 a.f90 b.f90,其中a.f90 包含其他人需要的名为mymod 的模块
一般我会这样编译
mpiifort *90 /fast /Qmkl /MD -o main.exe
我只做了两次,因为第一次,会缺少mymod.mod
现在我想使用 makefile,因为我想减少重新编译的时间。我是这样写的
IFORT = /fast
MKL =/Qmkl
LDFLAGS = /MD
main:main.obj b.obj
mpiifort $(IFORT) $(MKL) $(LDFLAGS) $< -o $@
mymod.mod:a.f90
mpiifort /c $(IFORT) $(MKL) $(LDFLAGS) $<
main.obj:main.f90
mpiifort /c $(IFORT) $(MKL) $(LDFLAGS) $<
b.obj:b.f90
mpiifort /c $(IFORT) $(MKL) $(LDFLAGS) $<
但是,这里肯定有问题。我得到了一堆unresolved external symbol。怎么了?
【问题讨论】:
-
我不是 makefile 专家,但看起来您的
main目标对mymod.mod没有任何显式依赖,因此无法构建。我也可能完全错了
标签: makefile fortran fortran90