我有一个主要的Fortran代码,它使用C头文件和Fortran库,编译后的代码需要一些dll文件在同一个目录中。我无法访问Fortran库的源代码。我想在Matlab中实现它。我试图了解这是否可行以及实现这一目标需要采取哪些步骤。我有下面的问题,如果我正朝着正确的方向前进,请告诉我。谢谢!
谢谢!
答案 0 :(得分:1)
关于使用可能导致mex -setup
失败的Windows SDK 7.1 there is a bug of which I am aware,但它与SDK而不是MATLAB有关。应用this fix from Microsoft后,mex -setup
将成功。
如果FORTRAN包含mexFunction entry point,那么使用您拥有的标题链接C库,构建MEX文件(使用FORTRAN编译器)应该没有问题。但是,如果没有mexFunction,你可能需要写一个mexFunction。请注意,尽管FORTRAN有各种编译器+链接器配置,您可以使用fLangCompilers = mex.getCompilerConfigurations('Fortran','Supported')
列出,但链接器与Visual Studio或Windows SDK的link.exe
相同,与C和C ++ MEX配置一起使用。因此,据我所知,您可以使用FORTRAN代码构建MEX函数并通过简单地将其添加到mex
命令与任何其他库(例如{{ {1}})。对于FORTRAN MEX示例:
mex -v -largeArrayDims mexFun.F CLib.lib
基本上,我的猜测是以下应该有效:
edit([matlabroot '/extern/examples/mex/mexlockf.F']);
并选择带有SDK链接器的Intel FORTRAN编译器。mex -setup
值得一试〜