我有一套從NETLIB網站獲得的blas/lapack函數。我想將這些函數放入Fortran模塊中。我的代碼的其餘部分是用Fortran 90所以我去這樣做:模塊和傳統的Fortran 77代碼
module modname
contains
double precision function ddot(n,dx,incx,dy,incy)
.
.
.
end function
subroutine dpofa(a,lda,n,info)
.
.
double precision ddot
.
end subroutine dopfa
end module
當我編譯使用
gfortran modname.f90
我得到以下錯誤:
/tmp/ccC2EUFj.o: In function
__temp_MOD_dpofa': temp.f90:(.text+0x11c): undefined reference to
ddot_'
我忽略關於Undefined reference to main
的錯誤,我意識到這是因爲我沒有程序..文件中的結束程序語句。
但是,如果我刪除module modname
,contains
和end module
的行,編譯器將無任何問題地編譯。
可能是什麼問題?
您需要告訴gfortran與數學庫鏈接,例如:'-llapack -lblas' –
我在模塊中擁有源代碼本身。我不明白爲什麼我需要鏈接到lapack/blas – mod0