我正在尝试在mex文件中运行FFTW代码,这仅用于开发和测试目的。经过一些搜索,我发现其他人也尝试过类似的事情,并且遇到了相关的问题,但我没有找到任何解决方案。当我尝试运行mex文件时,Matlab告诉我:
“???”错误使用==> chirpTransform.mxCta无效的MEX文件'\removed\my\directory\+chirpTransform\mxCta.mexw32': 找不到指定的过程。
我使用MinGW的gnumex来构建mex文件,因为LCC似乎存在一些问题。我尝试使用FFTW网站上的32位DLL(http://www.fftw.org/install/windows.html)。我尝试使用Matlab 2009b bin目录中的fftwf3.dll。我使用Msys / MinGW从源代码构建了dll。在所有情况下,结果都是相同的。在所有情况下,我执行以下操作生成lib文件。
“???”错误使用==> chirpTransform.mxCta无效的MEX文件'\removed\my\directory\+chirpTransform\mxCta.mexw32': 找不到指定的过程。
我使用MinGW的gnumex来构建mex文件,因为LCC似乎存在一些问题。我尝试使用FFTW网站上的32位DLL(http://www.fftw.org/install/windows.html)。我尝试使用Matlab 2009b bin目录中的fftwf3.dll。我使用Msys / MinGW从源代码构建了dll。在所有情况下,结果都是相同的。在所有情况下,我执行以下操作生成lib文件。
c:\gnumex\mexdlltool.exe -d libfftw3f-3.def -D libfftw3f-3.dll -l libfftw3f.lib --as C:\MinGW\bin\as.exe
我还尝试使用Visual Studio的lib.exe工具并尝试了各种mexdlltool标志。
似乎我可以直接使用Matlab的loadlibrary功能调用fftwf3-3.dll中的函数。由于DLL似乎不是问题,我尝试构建fftwf3的静态版本并将其直接链接到mex文件中。结果是相同的!如果我删除FFTW代码,则mex文件运行正常。此时我几乎已经放弃了,并且正在尝试寻找替代测试方法。