我如何在不使用模块的情况下将我的Fortran例程(及其接口)放入DLL中?

问题描述 投票:2回答:1

我有一些要导出到DLL文件的Fortran例程,这些例程已重载(我使用通用函数)。当然,定义必须包含在接口块中,使用模块更容易,例如:

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文件without

感谢您的帮助:)。

dll fortran
1个回答
0
投票

不可能在DLL或.so库中包含通用接口或其他类型的接口。这些需要Fortran特定格式,例如模块。某些编译器可以将模块信息放入库(Cray)中,大多数编译器会生成一个单独的文件(.mod),但两者都必须存在Fortran模块。

一个人也可以使用包含文件。这也是某些还提供Fortran接口的C库所采用的方法,例如fftw.f03文件中的FFTW。

© www.soinside.com 2019 - 2024. All rights reserved.