FFTW是一个比较快的、非常出名的一个DFT的开源库。 本文探索安装和配置FFTW,用Visual Studio 2008来使用fftw。

第一步:下载最新的fftw库

这一步很简单,只要在google里搜索fftw,很容易就可以定位到fftw的官网。为了方便,贴出fftw的Windows版本的下载页面:

http://www.fftw.org/install/windows.html

根据自己的系统选择,我用的是64位Win7,但是为了能让32的机器可以用,我选择下载的是32位的。

第二步:解压+生成lib

1、解压很简单,搞一个解压软件解压就行了。

2、启动CMD,切换到解压后的fftw目录下。

3、我用的Visual Studio 2008,以他为例实验下。在CMD下执行如下命令:

set path=D:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin;D:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64;%path%

注意,命令中用到的是你安装的VS的两个目录。你也许装到C盘了~

追加编辑(2014年5月):最近项目发现只要把CMD换成Visual Studio的命令提示符就不用设置环境变量了,因为Visual Studio的命令提示符中包含了正确的环境变量。

4、执行下面的命令:

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

第三步:试验下~

1、新建一个空白的Win 32 console application

2、添加一个C文件,并拷入如下代码:

#include "fftw3.h"
#include <stdio.h>
#define N 8
int main()
{
	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<N; 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); /* repeat as needed */
	fftw_destroy_plan(p);
	fftw_cleanup();
	for(i=0;i<N;i++)/*OUTPUT*/
	{
		printf("%f,%fi\n",din[i][0],din[i][1]);
	}
	printf("\n");
	for(i=0;i<N;i++)/*OUTPUT*/
	{
		printf("%f,%fi\n",out[i][0],out[i][1]);
	}

	if(din!=NULL) fftw_free(din);
	if(out!=NULL) fftw_free(out);
	getchar();
	return 0;
}

3、配置属性

3.1 、 右击项目,选择属性。

3.2 、 向C/C++选项下的常规-》附加包含目录中添加 fftw.h所在的目录。

3.3 、 添加lib,将fftw目录下生成的三个lib的文件名添加到 “链接器-》输入-》附加依赖项”。

3.4 、 将fftw所在的目录 添加到 “链接器-》常规-》附加库目录”。

4、编译!

5、执行。执行时,会提示找不到某个dll。 这个问题有很多方法解决,最简单的方法是直接把缺少的dll从fftw目录下,拷贝到你的执行文件所在的目录~

6、执行结果如下:

Windows安装和使用fftw的更多相关文章

  1. Mysql(windows)安装

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  2. Windows 安装JRuby 生成 war 到 tomcat 运行

    Windows安装JRuby Rails 直接下载 JRuby,不装 Ruby. http://jruby.org/download 该安装包可以配好环境变量 %JRUBY_HOME% 等 安装 bu ...

  3. windows安装rabbitmq

    官网下载windows安装版本:http://www.rabbitmq.com/install-windows.html ,安装文件rabbitmq-server-3.6.5.exe 前提:安装erl ...

  4. windows 安装 mongodb

    windows 安装 mongodb 下载 首先到官网下载合适的安装包,下载地址为 https://www.mongodb.com/download-center MongoDB for Window ...

  5. 2016 windows安装phing:安装成功

    21:39 2016/7/212016 windows安装phing:安装成功注意:出现错误时就去更新pear:参见:http://www.cnblogs.com/pinnasky/archive/2 ...

  6. Windows安装和使用zookeeper

    之前整理过一篇文章<zookeeper 分布式锁服务>,本文介绍的 Zookeeper 是以 3.4.5 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apach ...

  7. windows 安装mysql 步骤

    Windows 安装mysql 5.7.12教程 1.在官网下载mysql5.7.12.zip并解压 复制默认配置文件my-default.ini,并命名为my.ini 使用记事本打开,修改如下配置 ...

  8. DOCKER windows安装

    DOCKER windows安装 1.下载程序包 2. 设置环境变量 3. 启动DOCKERT 4. 分析start.sh 5. 利用SSH工具管理 6. 下载镜像 6.1 下载地址 6.2 用FTP ...

  9. openssh for windows安装

     openssh for windows安装 2009-11-22 22:43:58 分类: WINDOWS 本文转自:http://blog.chinaunix.net/uid-7541208-id ...

随机推荐

  1. [POJ 3728]The merchant

    Description There are N cities in a country, and there is one and only one simple path between each ...

  2. [AHOI2005]洗牌

    题目描述 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联提议用扑克牌打 ...

  3. ●CodeForce 293E Close Vertices

    题链: http://codeforces.com/contest/293/problem/E题解: 点分治,树状数组 大致思路和 POJ 1741 那道点分治入门题相同, 只是因为多了一个路径的边数 ...

  4. 洛谷4月月赛R1

    T1.题目大意:n个人站成一排,有m个团队,每个人有且属于一个团队,可以让若干个人出队,任意交换这些人的位置后再站回去,问要让所有同一团队的人连续地站在一起,至少要出队几个.(n<=10^5,m ...

  5. 【bzoj4445 scoi2015】小凸想跑步

    题目描述 小凸晚上喜欢到操场跑步,今天他跑完两圈之后,他玩起了这样一个游戏. 操场是个凸 nn 边形, nn 个顶点按照逆时针从 00 ∼ n - 1n−1 编号.现在小凸随机站在操场中的某个位置,标 ...

  6. hdu 2871 线段树(各种操作)

    Memory Control Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  7. bzoj1043[HAOI2008]下落的圆盘 计算几何

    1043: [HAOI2008]下落的圆盘 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1598  Solved: 676[Submit][Stat ...

  8. IPQ4028开启I2C功能

    0 概述 IPQ4028是一款集约式4核心ARM7 SOC芯片,内嵌独立双频WiFi子系统,offload式,支持MU-MIMO,最高支持1.2Gbps.标准的官方Demo方案中,IPQ4019开启了 ...

  9. gcc编译器的工作流程

    参考资料:http://www.cnblogs.com/dfcao/p/csapp_intr1_1-2.html 在linux系统上,从源文件到目标文件的转化是由编译器完成的.以hello.c程序的编 ...

  10. 电子凭证 : Java 生成 Pdf

    来源:蛙牛, my.oschina.net/lujianing/blog/894365 如有好文章投稿,请点击 → 这里了解详情 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中 ...