fftwライブラリ(link to FFTW documentation)を使用してDFTを実装しようとしています。fftwライブラリを使用中にC++コードが実行されない
すべてのライブラリが正しくリンクされており、プロジェクトはうまく構築されています。ただし、fftwライブラリの関数が呼び出された時点でコードは実行されません。
#include <iostream>
#include <fftw3.h>
using namespace std;
int main() {
int vectorSize = 100;
cout << vectorSize << endl;
fftw_complex vec[vectorSize], vecOut[vectorSize];
for(int i = 0; i < vectorSize; i++) {
vec[i][0] = i;
vec[i][1] = 1;
}
// Call to function to create an FFT plan
fftw_plan plan = fftw_plan_dft_1d(vectorSize, vec, vecOut, FFTW_FORWARD, FFTW_ESTIMATE);
cout << "test" << endl;
return 0;
}
fftw_planがインスタンス化される行をコメントすると、コードは100と "test"を期待どおりに出力します。ビルドには問題はありませんが、私が知る限りです。私は実際に同様の問題を記述した投稿を見つけることはできませんでした。
私は、MinGWと32ビット版のプリコンパイルされたバイナリをウィンドウ(download link)で使用して、Eclipseで実行しています。
すべてのヘルプは本当にいただければ幸いです:)
デバッガで_Pause_を押すとどうなりますか?コードがまだ実行中か、 'fftw_plan_dft_1d'の呼び出しでクラッシュしますか?他のfftw呼び出しを試しましたか、もっと簡単な呼び出しをしましたか? [私が見つけた]ドキュメント(http://www.fftw.org/fftw3_doc/Complex-One_002dDimensional-DFTs.html)は 'fftw_malloc'への呼び出しを示唆しているので、' fftw_complex'をスタックに作成するかどうかはわかりません問題を引き起こすかどうか。私はそれが動作するかどうかを確認する簡単な関数呼び出しを試みることをお勧めします。 – Tas
デバッガは終了して終了し、決まったブレークポイントに到達しません。 –
コードを再実行するだけで、コード自体が「クラッシュ」することはありません。それは何も出力しません、私はそれがバックグラウンドで動作しているかどうかわかりません(私の推測は、エラーがないためです) –