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

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


留言列表 (2)

發表留言
  • 訪客
  • MFC也可以?
  • 如果你是說 mfc 調用 fftw 的話,可以,步驟一樣。

    edisonx 於 2011/12/14 02:20 回覆

  • 訪客
  • 我是64bit的os~調用過程中很多問題 還在釐清中...

    如果有不懂得可以請教您嗎? 謝謝~
  • 64 位在用 lib 時要加 machine 參數
    lib /def:libfftw3-3.def /machine:x64
    詳細可看 msdn 對 lib.exe 參數說明
    http://msdn.microsoft.com/library/ee862484.aspx

    edisonx 於 2011/12/14 15:47 回覆

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼