FFTW库在VS 2010中的使用方法

一、FFTW库简介(from百度百科

      FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集,其由MIT的M.Frigo 和S. Johnson 开发。可计算一维或多维实和复数据以及任意规模的DFT。
      FFTW 还包含对共享和分布式存储系统的并行变换,它可自动适应你的机器, 缓存,存储器大小,寄存器个数。
      FFTW 通常比目前其它开源Fourier变换程序都要快,最新版本为fftw-3.3.3。
图1.  FFTW-logo
     FFTW 的编码生成器采用面向对象设计技术和面向对象语言Caml 编写;它能自动适应系统硬件,因而可移植性很强。FFTW2.1.5 支持共享存储多线程并行和分布式存储 MPI 并行。FFTW 的运算性能远远领先于目前已有的其它 FFT 软件。
     FFTW 为任意大小的模式生成一个计划(plan),通过对该计划施行各种运算完成各种模式的转换;内部结构及其复杂性对用户透明;速度快 (适合各种机器的内部编译器、代码生成器利用 AST 在运行时生成代码并自我优化,而且不占用编译时间,采用分层存储技术)。
     FFTW 受到越来越多的科学研究和工程计算工作者的普遍青睐,并为量子物理、光谱分析、音视频流信号处理、石油勘探、地震预报、天气预报、概率论、编码理论、医学断层诊断等领域提供切实可行的大规模 FFT 计算。
 
二、使用方法(下载地址:FFTW官方网站上提供编译好的DLL文件

      下载解压后,文件中存在DLL文件,但是没有LIB文件,需从DEF文件中生成编译所需要的.lib文件。

      具体方法

      第一步:在Visual Studio 2010中打开Tools > Visual Studio Command Prompt ,转到解压后的文件夹中(比如D:fftw),使用VS2010自带的lib.exe软件生成LIB文件:

      32位:

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

       64位:

lib /machine:x64 /def:libfftw3l-3.def

        这样对应文件夹下便生成了libfftw3-3.lib、libfftw3l-3.lib、libfftw3f-3.lib三个LIB文件。

        该文件夹下还包括原有的fftw3.h和三个DLL文件libfftw3-3.dll、libfftw3l-3.dll、libfftw3f-3.dll。

        第二步:新建一个Project后,我们可以选择Project > Properties打开项目属性。把D:fftw添加到VC++ Directories项目下的Include Directories栏(头文件搜索路径)和Library Directories栏(lib文件搜索路径)中。同时打开Linker>Input 将上面3个LIB文件名添加在Additional Dependencies 栏目中。这样便设置好了路径,使得编译器可以找到我们上面生成的LIB文件。

        第三步:我们只要把前面提到的三个DLL文件放在建立的Project文件夹下,这样程序运行时便可以使用了。网络上有人说把DLL放在System32中,这当然可以使用,不过个人认为修改windows文件夹是一大忌讳。

        以上只是简单的安装方法,想要彻底理解整个过程,需要windows编程的许多知识。

原文地址:https://www.cnblogs.com/newbyang/p/5460543.html