【发布时间】:2012-12-04 10:03:02
【问题描述】:
我有一个使用大量模块的Fortran 库。我在 Windows 上使用 ifort 编译器。因此,我得到了库的*.lib 文件和使用的模块的*.mod 文件。
如果我想在另一个程序中使用已编译的库,我还必须分发 *.mod 文件。如何防止这种情况?我看到了两种可能性:
- 创建一个接口,其中定义了用于调用库模块内的函数或过程的函数。所以,我只需要提供定义接口的文件。
- 在函数定义中使用
bind(c)为所有应该从库外部使用的模块函数和过程使用c 接口和导出名称。然后我可以使用类 c 的头文件分发该库。
还有其他可能吗?分发使用模块的已编译 fortran 库的最佳做法是什么?
【问题讨论】:
-
“分发”是指给自己的其他程序,还是给其他人?如果对你自己来说,那么你应该能够将 .mod 文件放在搜索路径上。如果分发给其他人,另一种解决方案是以源代码形式分发库。这会容易得多,因为您不必担心编译器版本。以编译的形式分发对您来说有多大必要?
-
我不是代码的所有者,所以我不能分发源代码。我必须将编译好的库提供给第三方。
标签: fortran