0

我有一个 FORTRAN 95 程序,它需要调用 LAPACK 库。我最近发现了 Cygwin,因为它可以安装 LAPACK 作为额外选项。

好吧,LAPACK 以“cyglap​​ack.dll”的形式存在于 /lib/lapack/ 目录中。在 Fortran 编程方面只有非常非正式的培训,我不知道如何引用 .dll 库而不是 .mod 模块。

非常感谢您对回答我的问题的文章的任何建议或指导!(PS 我先搜索了。我认为我不知道获得有用文章的正确术语。)

4

2 回答 2

0

从概念上讲,调用 Lapack 应该和调用任何其他 DLL 一样简单。您只需要弄清楚要在构建语句中包含哪些链接标志和语句。

在 Fortran 中,您可能会声明为EXTERNALLapack 中您不想使用的函数。这告诉编译器不要费心在源代码或 mod 文件中寻找函数的定义,而是在链接时提供定义。这就是有趣的开始,因为您尝试确保调用的签名与 DLL 预期的签名相匹配。

如果您提供更多信息,我可能会提供更多帮助。你的 Windows 开发环境是什么?您使用的是什么 Fortran 编译器?您使用什么编译和链接工具?您当前的链接声明是什么样的?

于 2010-04-24T11:59:55.187 回答
0

搜索词:dynamic linking fortran

看看这个页面:

http://sources.redhat.com/ml/binutils/2001-12/msg00471.html

它提到使用 dlltool.a从文件生成.dll文件。大概您应该能够以正常方式链接到它(通常是lib编译命令上的开关)。

否则,首先考虑运行 linux Live CD 以避免问题!如果您是学生或学者,请查看是否可以找到安装了 fortran 的服务器(IT 人员通常很有帮助),您可以在其中编译和运行您的程序。

于 2010-10-18T13:56:44.093 回答