下載對(duì)應(yīng)版本的FFTW(32 bits / 64 bits)
解壓
例如:
D:\framework\fftw
生成對(duì)應(yīng)的lib文件
- 找到vs對(duì)應(yīng)的命令行工具赎败,區(qū)分32位和64位
- 執(zhí)行如下命令
lib /def:libfftw3f-3.def
lib /def:libfftw3-3.def
lib /def:libfftw3l-3.def
- 在vs的項(xiàng)目中打開項(xiàng)目屬性
- 選擇C/C++ ===> 常規(guī)润歉,在
附加包含目錄
中填入.h
文件所在目錄
image.png - 選擇
鏈接器 ===》 常規(guī)
,在附加庫目錄
中填入.lib
所在目錄捷泞; - 在
鏈接器 ===》 輸入== > 附加依賴項(xiàng)
中填入各個(gè)lib的名稱
libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib
- 選擇C/C++ ===> 常規(guī)润歉,在
- 復(fù)制
.dll
文件到自己的項(xiàng)目中 - 測(cè)試
#include "fftw3.h"
#include<iostream>
using namespace std;
int main()
{
fftw_complex *in, *out;
fftw_plan p;
int N = 8;
int i;
int j;
in = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * N);
out = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * N);
for (i = 0; i < N; i++)
{
in[i][0] = 1.0;
in[i][1] = 0.0;
printf("%6.2f ", in[i][0]);
}
printf("\n");
p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
fftw_execute(p); /* repeat as needed*/
for (j = 0; j < N; j++)
{
printf("%6.2f ", out[j][0]);
}
printf("\n");
fftw_destroy_plan(p);
fftw_free(in);
fftw_free(out);
system("pause");
return 0;
}