0. 環境說明
WinXP + VS2008
1. 從 FFTW 原網址下載檔案,並解壓縮。
2. 解壓縮後可得到以下檔案
3. 為方便說明,先將 libfftw3-3.dll、 libfftw3f-3.dll、libfftw3l-3.dll 、libfftw3-3.def 、 libfftw3f-3.def 、 libfftw3l-3.def 放到 D:\LIB 資料夾底下
4. 開啟 VS2008 命令提示字元,將路徑切到 D:\LIB 底下。接著輸入
lib /def:libfftw3-3.def ,完成後會將得到以下畫面。
5. 回到 D:\LIB 資料夾,發現多了 libfftw3-3.lib 及 libfftw3-3.exp 二個檔案,其中 .lib 是我們要的, exp 就看要不要留著做紀念。
6. 再回到 VS2008 命令提示字元,輸入
lib /def:libfftw3l-3.def
lib /def:libfftw3f-3.def
好了之後回到 D:\LIB 底下,發現共多了 6 個檔案。
7. 將 D:\Test 底下的三個 dll 放到 C:\WINDOWS\system32 底下。
8. 將 D:\Test 底之 fftw3.h 放到 C:\Programming\Microsoft Studio 9.0\VC\include 底下。
9. 大功告成,到 FFTW 網站取得說明檔及範例檔,修改後原始碼如下(注意 lib 的連結位置,下述的三個 lib 都要有連到)。
#pragma comment(lib, "D:\\LIB\\libfftw3-3.lib")
#pragma comment(lib, "D:\\LIB\\libfftw3f-3.lib")
#pragma comment(lib, "D:\\LIB\\libfftw3l-3.lib")
#include <stdio.h>
#include <stdlib.h>
#include <fftw3.h>
#define N 5
int main()
{
fftw_complex *in, *out;
fftw_plan p;
in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
fftw_execute(p); /* repeat as needed */
fftw_destroy_plan(p);
fftw_free(in); fftw_free(out);
return 0;
}
10. 打完收功,感謝收聽。
留言列表