mexファイルでFFTWコードを実行しようとしています。これは厳密に開発とテストのためのものです。いくつかのグーグルの後、私は他の人が同様のことをやろうとしていて関連する問題を抱えているのを見るが、私は解決策を見いださなかった。 mexファイルを実行しようとすると、Matlabは私にこう教えてくれます:FFTWをMatlab Mexファイルにリンクする
??? ==> を使用しているエラーchirpTransform.mxCta無効なMEXファイル '\ removed \ my \ directory \ + chirpTransform \ mxCta.mexw32': 指定された手順は に見つかりませんでした。
。
LCCに問題があるように見えるため、MinGWでgnumexを使用してmexファイルを構築しています。私はFFTWサイト(http://www.fftw.org/install/windows.html)から32ビットDLLを使用してみました。私はMatlab 2009b binディレクトリのfftwf3.dllを使ってみました。私はMysys/MinGWを使ってソースからDLLを構築しました。すべての場合において、結果は同じである。すべての場合、私はlibファイルを生成するために以下の作業を行いました。
as.exe \ MinGWの\ binに\:は、c: libfftw3f.lib --as C -l \ gnumex \ mexdlltool.exe -d libfftw3f-3.def -D libfftw3f-3.dll
私は視覚的なスタジオのlib.exeツールを使って試して、様々なmexdlltoolフラグを試しました。
Matlabのloadlibrary機能を使用してfftwf3-3.dllの関数を直接呼び出すことができます。 DLLが問題ではないように見えるので、私はfftwf3の静的バージョンを構築し、それを直接mexファイルにリンクすることを試みました。私は同じ結果を得ました! FFTWコードを削除すると、mexファイルはうまく動作します。私はちょうどこの時点であきらめてしまいました。私は、テストの代わりの方法を考案しています。
「LCCに問題があるようです」 - 正確にはどういう意味ですか? –
あなたは使用しているMEXのコードを投稿することができますか? – Amro
Matlabは実際にFFTWをFFTに内部的に使用しています。ご使用のFFTWのバージョンがMatlabが使用するものと矛盾していないか、Matlab FFTWライブラリとリンクしていないことを確認してください。 – sfstewman