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)에서 사용할 수있는 이클립스에서 실행하고 있습니다.
은 어떤 도움이 정말 감사하겠습니다 :)
디버거에서 _Pause_를 누르면 어떻게됩니까? 코드가 여전히 실행 중이거나'fftw_plan_dft_1d' 호출을 통해 충돌합니다. 다른 fftw 호출을 시도해 보셨습니까? 더 간단한 호출입니까? [찾은 문서] (http://www.fftw.org/fftw3_doc/Complex-One_002dDimensional-DFTs.html)는'fftw_malloc'에 대한 호출을 제안하므로'fftw_complex'를 스택에 생성 할 수 있는지 확실하지 않습니다. 문제를 일으키는 지 여부. 작동하는지 확인하기 위해 더 간단한 함수 호출을 시도하는 것이 좋습니다. – Tas
디버거가 종료되어 종료되고 코드에 넣은 중단 점에 도달하지 않습니다. –
코드를 다시 반복하기 만하면 코드 자체가 "충돌"하지 않습니다. 그것은 아무것도 출력하지 않습니다, 나는 그것이 백그라운드에서 작동하는지 확실하지 않습니다. (오류가 없기 때문에 내 추측입니다) –