내 프로그램은 intel MKL을 사용하는 mpi 프로그램입니다. 간단한 들어,이, 우리가 a.f90
다른 사람이 필요로 불리는 모듈 mymod
이Fortran 90 용 Makefile이 생성되어 해결되지 않은 외부 기호가 발생합니다
때문에 내가 처음으로, 난 그냥 두 번을이
mpiifort *90 /fast /Qmkl /MD -o main.exe
처럼 컴파일을 포함하는 main.f90 a.f90 b.f90
있다 가정하자 부족할 것입니다 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
의 뭉치를 얻었다. 뭐가 잘못 되었 니?
난을 만드는 (정규 표현식을 사용하는 것은 좋은 선택이 될 것입니다) 메이크 파일 전문가는 아니지만'main' 타겟이'mymod.mod'에 대한 명시적인 의존성을 가지지 않으므로 이것이 만들어지지 않을 것입니다. 나는 또한 완전히 틀릴 수 있었다 –