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. [HNOI2011]赛车游戏

    题目描述 名歌手LAALA最近迷上了一款赛车游戏,游戏中开车的玩家在不同的路段需要选择不同的速度,使得自己在最短的时间内到达终点.开始游戏时,车内的初始油量为f,所以游戏的关键是如何在速度和耗油量之间 ...

  2. [CEOI2008]order

    Description 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成. 现在给出这些参数,求最大利润 Solu ...

  3. 计蒜客NOIP2017提高组模拟赛(三)day1

    火山喷发 火山喷发对所有附近的生物具有毁灭性的影响.在本题中,我们希望用数值来模拟这一过程. 在环境里有 n 个生物分别具有 A​1​​,A​2​​,⋯,A​n​​点生命值,一次火山喷发总计 MM 轮 ...

  4. hdu 4533 线段树(问题转化+)

    威威猫系列故事——晒被子 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Tot ...

  5. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 操作符重载和隐式类型转换

    C#中,某些类型会定义隐式类型转换和操作符重载.Unity中,有些对象也定义了隐式类型转换和操作符重载.典型情况有:UnityEngine.Object.UnityEngine.Object的销毁是调 ...

  6. Lua和C#调用探秘

    转载请标明出处:http://www.cnblogs.com/zblade/ 在实际的项目中,大部分业务逻辑 程序员只需要负责lua层编写逻辑即可,或者在c#层添加一些静态函数,供lua层调用.那么对 ...

  7. Cisco 关闭命令同步提示信息

    Router(config)#no logging console 如果你通过console连接,使用第一条Router(config)#no logging monitor 如果通过telnet,s ...

  8. Oracle 导入、导出DMP(备份)文件

    首先说明dmp文件: Oracle备份文件是以dmp结尾,这种文件是oracle的逻辑备份文件,常用于数据库逻辑备份,数据库迁移等操作. 一.Oracle导入备份文件步骤:我用的是Oracle 11g ...

  9. (MariaDB)开窗函数用法

    本文目录: 1.1 窗口和开窗函数简介 1.2 OVER()语法和执行位置 1.3 row_number()对分区排名 1.4 rank()和dense_rank() 1.5 percent_rank ...

  10. 腾讯云H5语音通信QoE优化

    本文首发在云+社区,未经许可,不得转载. 云+导语:4月21日,腾讯云+社区在京举办"'音'你而来,'视'而可见--音视频技术开发实战沙龙",腾讯音视频实验室高级工程师张轲围绕网络 ...