[C++] [转]Windows下FFTW库的安装

来源:互联网 发布:零食推荐知乎 编辑:程序博客网 时间:2024/05/16 09:40
  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 - 嘻哈的博客
原创粉丝点击