C++ 链接MinGW64.o到MSVC 2010

C++ 链接MinGW64.o到MSVC 2010,c++,visual-c++,mingw,arpack,C++,Visual C++,Mingw,Arpack,如何将使用MinGW64 fortran(gfortran)编译器(.o)生成的对象文件链接到MSVC 2010 我只想使用64位arpack库和64位MSVC解决方案,但所有其他方法都不成功。MSVC找到具有32位解决方案配置的arpack函数,但启动应用程序时出现运行时错误,根本找不到具有64位解决方案配置的arpack函数。简短回答:您不能。这些编译器使用不同的ABI,这意味着它们的目标文件格式不同且不兼容 可能的情况是让我们用Fortran代码创建一个DLL。将其导入到C++程序中,但要

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


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

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


可能的情况是让我们用Fortran代码创建一个DLL。将其导入到C++程序中,但要注意名称的模糊:DLL导出的符号不能被破坏(我不确定FORTRAN中是否有名字的篡改)。在C++代码中,从DLL导入的函数必须声明为“外部C”,以防止C++侧的名称篡改。

我怀疑这是可能的,因为GCC的ObJ文件格式与CL.的Obl文件格式不兼容。