Моя программа - программа mpi, которая использует intel MKL. для простой, допустим есть main.f90 a.f90 b.f90
, в котором a.f90
содержит модуль, который называется mymod
нужны другиеMakefile производит для Fortran 90 вызывает неразрешенный внешний символ
Обычно я скомпилировать его как этот
mpiifort *90 /fast /Qmkl /MD -o main.exe
Я просто сделать это дважды, потому что в первый раз, будет отсутствовать mymod.mod
Теперь я хочу использовать make-файл, так как хочу уменьшить время перекомпиляции. Я пишу это так
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
. Что не так?
Я не эксперт по make-файлу, но похоже, что ваша главная цель не имеет никакой явной зависимости от 'mymod.mod', поэтому это не будет построено. Я тоже мог бы ошибаться –