将MinGW64.o链接到MSVC 2010

Link MinGW64 .o to MSVC 2010

本文关键字:MSVC 2010 链接 MinGW64      更新时间:2023-10-16

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

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

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

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