将MinGW64 .o链接到MSVC 2010

时间:2012-12-06 10:18:52

标签: c++ visual-c++ mingw arpack

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

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

1 个答案:

答案 0 :(得分:0)

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

可能的做法是让FortG从Fortran代码中创建一个DLL。将其导入到C ++程序中,但要小心名称错误:DLL导出的符号不得被破坏(我不确定Fortran中是否存在名称错误)。在你的C ++代码中,必须将从DLL导入的函数声明为“extern C”,以防止在C ++端进行名称修改。