我的程序是使用英特爾MKL的mpi程序。簡單,讓我們假設有main.f90 a.f90 b.f90
其中a.f90
包含模塊調用mymod
被別人需要Makefile爲Fortran 90生成導致無法解析的外部符號
通常我會編譯它像這樣
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 [email protected]
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',所以這不會被構建。我也可能完全錯了 –