[C++] [轉]Windows下FFTW庫的安裝

  FFTW是用來計算一維或者多維的離散傅里葉變換,輸入可以爲實數序列也可以爲複數序列的C語言的子函數庫,FFTW是免費軟件,是作爲fft函數庫的各種應用的上佳選擇。
1. 從網站http://www.fftw.org上下載最新的預編譯文件:
    32-bit version: fftw-3.2.2.pl1-dll32.zip (1.8MB)
    64-bit version: fftw-3.2.2-dll64.zip (2.2MB)
2.安裝lib.exe
   其實這是VC自帶的工具,在VC6.0和VS05中都有的,我機器上安裝了VC6.0及VS2005,lib.exe的路徑如下:
   D:\Program Files\Microsoft Visual Studio\VC98\Bin (VC6.0的目錄)
   D:\Program Files\Microsoft Visual Studio 8\VC\bin   (VS2005的目錄)
   打開Windows的命令提示行窗口(CMD窗口),改變當前目錄到D:\Program Files\Microsoft Visual Studio 8\VC\bin(使用cd命令)
   把\vs安裝目錄\Common7\IDE 裏面的mspdb80.dll,mspdbcore.dll,mspdbsrv.exe,msobj80.dll 複製到上面的bin文件夾裏,把libfftw3-3.def,libfftw3f-3.def,libfftw3l-3.def也拷到bin下面。

  然後輸入lib.exe(即運行),會有如下提示:

  Microsoft Windows XP [版本 5.1.2600]
  (C) 版權所有 1985-2001 Microsoft Corp.

  C:\Documents and Settings\admin>cd D:\Program Files\Microsoft Visual Studio\VC98
  \Bin

  C:\Documents and Settings\admin>D:

  D:\Program Files\Microsoft Visual Studio\VC98\Bin>lib.exe
  Microsoft (R) Library Manager Version 6.00.8168
  Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

  usage: LIB [options] [files]

   options:

      /CONVERT
      /DEBUGTYPE:CV
      /DEF[:filename]
      /EXPORT:symbol
      /EXTRACT:membername
      /INCLUDE:symbol
      /LIBPATH:dir
      /LINK50COMPAT
      /LIST[:filename]
      /MACHINE:{ALPHA|ARM|IX86|MIPS|MIPS16|MIPSR41XX|PPC|SH3|SH4}
      /NAME:filename
      /NODEFAULTLIB[:library]
      /NOLOGO
      /OUT:filename
      /REMOVE:membername
      /SUBSYSTEM:{NATIVE|WINDOWS|CONSOLE|WINDOWSCE|POSIX}[,#[.##]]
      /VERBOSE

  D:\Program Files\Microsoft Visual Studio\VC98\Bin>

  這時候你的lib命令就可以使用了。


3.在cmd進入上面提到的bin目錄,並運行
  lib /machine:i386 /def:libfftw3-3.def
  lib /machine:i386 /def:libfftw3f-3.def
  lib /machine:i386 /def:libfftw3l-3.def


4.將libfftw3f-3.dll libfftw3-3.dll libfftw3l-3.dll放入windows/system32中,然後將生成的庫文件libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib放入vc中的lib文件夾,把fftw3.h放入include文件夾。


5.在你新建工程的時候,記得#include”fftw3.h“,然後設置參數:”項目“==>"項目屬性"==>"配置屬性"==>"鏈接器"==>"輸入"==>"附加依賴項",將以下三項添加進去:

   libfftw3-3.lib

   libfftw3f-3.lib

   libfftw3l-3.lib

6.完成。

7.下面是從別的博客上找到的一個測試代碼:

#include "fftw3.h"


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);
    return 0;
}

結果如下:


[轉]Windows下FFTW庫的安裝 - 111 - 嘻哈的博客
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章