0. 環境說明

WinXP + VS2008

1. 從 FFTW 原網址下載檔案,並解壓縮。

fftw-000.png 

2. 解壓縮後可得到以下檔案

fftw-001.png 

3. 為方便說明,先將 libfftw3-3.dll、 libfftw3f-3.dll、libfftw3l-3.dll 、libfftw3-3.def 、  libfftw3f-3.def 、  libfftw3l-3.def 放到 D:\LIB 資料夾底下

fftw-002.png 

fftw-003.png   

4. 開啟 VS2008 命令提示字元,將路徑切到 D:\LIB 底下。接著輸入  

lib /def:libfftw3-3.def  ,完成後會將得到以下畫面。

 

 fftw-004.png

5. 回到 D:\LIB 資料夾,發現多了 libfftw3-3.lib 及 libfftw3-3.exp 二個檔案,其中 .lib 是我們要的, exp 就看要不要留著做紀念。

fftw-005.png 

 6. 再回到 VS2008 命令提示字元,輸入

lib /def:libfftw3l-3.def 
lib /def:libfftw3f-3.def 

好了之後回到 D:\LIB 底下,發現共多了 6 個檔案。

fftw-006.png 

 

7. 將 D:\Test 底下的三個  dll 放到 C:\WINDOWS\system32 底下。

fftw-007.png 

8. 將 D:\Test 底之 fftw3.h 放到 C:\Programming\Microsoft Studio 9.0\VC\include 底下。

fftw-009.png 

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. 打完收功,感謝收聽。

arrow
arrow
    全站熱搜

    edisonx 發表在 痞客邦 留言(2) 人氣()