0

如何将使用 MinGW64 fortran (gfortran) 编译器 (.o) 生成的目标文件链接到 MSVC 2010?

我只想将 64 位 arpack 库与 64 位 MSVC 解决方案一起使用,但所有其他方法都没有成功。MSVC 找到具有 32 位解决方案配置的 arpack 函数,但启动应用程序时出现运行时错误,并且根本找不到具有 64 位解决方案配置的 arpack 函数。

4

1 回答 1

0

简短的回答:你不能。这些编译器使用不同的 ABI,这意味着它们的目标文件格式不同且不兼容。

可能的方法是让 MinGW 从 Fortran 代码中创建一个 DLL。将其导入您的 C++ 程序,但要注意名称修改:DLL 导出的符号不能被修改(我不确定 Fortran 中是否存在名称修改)。在您的 C++ 代码中,从 DLL 导入的函数必须声明为“extern C”,以防止在 C++ 端发生名称修改。

于 2012-12-06T10:33:36.537 回答