使用模块文件分发编译的fortran库

时间:2012-12-04 10:03:03

标签: fortran

我有一个Fortran库,它使用了很多模块。我在Windows上使用ifort编译器。因此,我获得了库的*.lib文件和已使用模块的*.mod文件。

这样做的缺点是,如果我想在另一个程序中使用已编译的库,我还必须分发*.mod个文件。如何防止这种情况?我看到两种可能性:

  1. 创建一个接口,其中定义了用于调用库模块内的函数或过程的函数。所以,我只需要提供定义接口的文件。
  2. 使用c-interface和导出名称,用于在函数定义中使用bind(c)从库外部使用的所有模块函数和过程。然后我可以使用类似c的头文件分发库。
  3. 还有其他可能吗?分发使用模块的已编译fortran库的最佳实践是什么?

1 个答案:

答案 0 :(得分:1)

我认为,到目前为止,分发.mod文件是最简单的,如果它应该使用来自Fortran的调用。如果要从其他语言调用它,无论如何都需要C接口。

糟糕的是丢失了Fortran显式接口。使用选项编号1,如果您提供带有接口块的包含文件,您可能仍然可以使用它,但只提供.mod文件更好恕我直言。