【发布时间】:2015-09-20 12:40:08
【问题描述】:
我有一组从 NETLIB 网站获得的 blas/lapack 函数。我想将这些函数放在 Fortran 模块中。我的其余代码在 Fortran 90 中。所以我开始这样做:
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:在函数
__temp_MOD_dpofa': temp.f90:(.text+0x11c): undefined reference toddot_'
我忽略了关于 Undefined reference to main 的错误,我意识到这是因为文件中没有 program .. end program 语句。
但是,如果我删除带有 module modname、contains 和 end module 的行,编译器编译不会出现任何问题。
可能是什么问题?
【问题讨论】:
-
您需要告诉 gfortran 链接到数学库,例如:
-llapack -lblas -
我在模块中有源代码本身。我不明白为什么我需要链接 lapack/blas
标签: compiler-errors fortran fortran90 gfortran