FFTW是一個比較快的、非常出名的一個DFT的開源庫。 本文探索安裝和配置FFTW,用Visual Studio 2008來使用fftw。
第一步:下載最新的fftw庫
這一步很簡單,只要在google里搜索fftw,很容易就可以定位到fftw的官網(wǎng)。
根據(jù)自己的系統(tǒng)選擇,我用的是64位Win7,但是為了能讓32的機(jī)器可以用,我選擇下載的是32位的。
第二步:解壓+生成lib
1、解壓很簡單,搞一個解壓軟件解壓就行了。
2、啟動CMD,切換到解壓后的fftw目錄下。
3、我用的Visual Studio 2008,以他為例實(shí)驗(yàn)下。在CMD下執(zhí)行如下命令:
set?path=D:Program?Files?(x86)Microsoft?Visual?Studio?9.0VCbin;D:Program?Files?(x86)Microsoft?Visual?Studio?9.0VCbinamd64;%path%
注意,命令中用到的是你安裝的VS的兩個目錄。你也許裝到C盤了~
追加編輯(2014年5月):最近項(xiàng)目發(fā)現(xiàn)只要把CMD換成Visual Studio的命令提示符就不用設(shè)置環(huán)境變量了,因?yàn)閂isual Studio的命令提示符中包含了正確的環(huán)境變量。
4、執(zhí)行下面的命令:
lib?/machine:ix86?/def:libfftw3-3.def lib?/machine:ix86?/def:libfftw3f-3.def? lib?/machine:ix86?/def:libfftw3l-3.def
第三步:試驗(yàn)下~
1、新建一個空白的Win 32 console application
2、添加一個C文件,并拷入如下代碼:
#include?"fftw3.h"
#include#define?N?8
int?main()
{
int?i;
fftw_complex?*din,*out;
fftw_plan?p;
din??=?(fftw_complex*)?fftw_malloc(sizeof(fftw_complex)?*?N);
out?=?(fftw_complex*)?fftw_malloc(sizeof(fftw_complex)?*?N);
if((din==NULL)||(out==NULL))
{
printf("Error:insufficient?available?memoryn");
}
else
{
for(i=0;?i<N;?i++)/*測試數(shù)據(jù)*/
{
din[i][0]?=?i+1;
din[i][1]?=?0;
}
}
p?=?fftw_plan_dft_1d(N,?din,?out,?FFTW_FORWARD,FFTW_ESTIMATE);
fftw_execute(p);?/*?repeat?as?needed?*/
fftw_destroy_plan(p);
fftw_cleanup();
for(i=0;i<N;i++)/*OUTPUT*/
{
printf("%f,%fin",din[i][0],din[i][1]);
}
printf("n");
for(i=0;i<N;i++)/*OUTPUT*/
{
printf("%f,%fin",out[i][0],out[i][1]);
}
if(din!=NULL)?fftw_free(din);
if(out!=NULL)?fftw_free(out);
getchar();
return?0;
}
3、配置屬性
? ?3.1 、 右擊項(xiàng)目,選擇屬性。
? ?3.2 、 向C/C++選項(xiàng)下的常規(guī)-》附加包含目錄中添加 fftw.h所在的目錄。
? ?3.3 、 添加lib,將fftw目錄下生成的三個lib的文件名添加到 “鏈接器-》輸入-》附加依賴項(xiàng)”。
? ?3.4 、 將fftw所在的目錄 添加到 “鏈接器-》常規(guī)-》附加庫目錄”。
4、編譯!
5、執(zhí)行。執(zhí)行時,會提示找不到某個dll。 這個問題有很多方法解決,最簡單的方法是直接把缺少的dll從fftw目錄下,拷貝到你的執(zhí)行文件所在的目錄~
6、執(zhí)行結(jié)果如下:





