2

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

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

  1. 创建一个接口,其中定义了用于调用库模块内的函数或过程的函数。所以,我只需要提供定义接口的文件。
  2. 使用函数定义中应该从库外部使用的所有模块函数和过程使用 c 接口和导出名称bind(c)。然后我可以使用类 c 的头文件分发该库。

还有其他可能吗?分发使用模块的已编译 fortran 库的最佳实践是什么?

4

1 回答 1

1

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

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

于 2012-12-04T11:41:45.787 回答