fftw在VS2010中的配置使用

自己编的FFT速度太慢,不会优化。MATLAB吧上的大神说有开源的fftw可以用,而且MATLAB也是用的这个,下载地址:http://www.fftw.org/install/windows.html

目前最新是fftw-3.3.4-dll32

之前网上很多方法编译,没有成功,老是提示需要SDK7.1或者生成失败,昨晚上终于成功了。

打开VS2010,工具->命令提示,cd D:\Program Files\fftw-3.3.4-dll32进入目录,输入:

32位版本:

lib /def:libfftw3f-3.def

lib /def:libfftw3-3.def

lib /def:libfftw3l-3.def

64位版本:

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

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

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

生成了libfftw3-3.lib、libfftw3l-3.lib、libfftw3f-3.lib三个LIB文件 。新建VC++项目,以控制台为例:
#include "stdafx.h"
#include "fftw3.h" 
#include  
#define N 8 
int _tmain(int argc, _TCHAR* argv[])
{
  int i; 
  fftw_complex *din,*out; 
  fftw_plan p; 
  din   = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); 
  out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); 
  if((din==NULL)||(out==NULL)) 
 
    printf("Error:insufficient available memory\n"); 
 
  else 
 
    for(i=0; i
   
      din[i][0] = i+1; 
      din[i][1] = 0; 
   
 
  p = fftw_plan_dft_1d(N, din, out, FFTW_FORWARD,FFTW_ESTIMATE); 
  fftw_execute(p);  
  fftw_destroy_plan(p); 
  fftw_cleanup(); 
  for(i=0;i
 
    printf("%f,%f\n",din[i][0],din[i][1]); 
 
  printf("\n"); 
  for(i=0;i
 
    printf("%f,%f\n",out[i][0],out[i][1]); 
 
  if(din!=NULL) fftw_free(din); 
  if(out!=NULL) fftw_free(out); 
  getchar();
  return 0;
}
右击项目,选择属性。 向C/C++选项下的常规-》附加包含目录中添加 fftw.h所在的目录。 添加lib,将fftw目录下生成的三个lib的文件名添加到 “链接器-》输入-》附加依赖项”。 将fftw所在的目录 添加到 “链接器-》常规-》附加库目录”。
编译、执行。若提示找不到某个dll,直接将其拷入项目文件夹中。成功!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值