我有一些Fortran例程,我想导出到DLL文件,这些例程被重载(我使用泛型函数)。当然,定义必须包含在接口块中,这样更容易使用模块,例如:
module myRoutines
! define the generic name
interface add
module procedure add_int, add_flt
end interface
contains
integer function add_int(i,j)
integer, intent(in) :: i, j
add_int = i + j
end function add_int
real function add_flt(a,b)
real, intent(in) :: a, b
add_flt = a + b
end function add_flt
end module myRoutines
我的问题是:如何将所有这些内容导出到一个dll文件没有使用模块?
我感谢任何帮助:)。
答案 0 :(得分:1)
不可能在DLL或.so库中包含通用接口或其他类型的接口。这些要求特定于Fortran的格式,例如模块。某些编译器可以将模块信息放入库(Cray)中,大多数编译器会生成一个单独的文件(.mod),但是两者都必须存在Fortran模块。
一个人也可以使用一个包含文件。这就是某些也提供Fortran接口的C库所采用的方法,例如fftw.f03
文件中的FFTW。