Windows安装和使用fftw
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的更多相关文章
- Mysql(windows)安装
h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...
- Windows 安装JRuby 生成 war 到 tomcat 运行
Windows安装JRuby Rails 直接下载 JRuby,不装 Ruby. http://jruby.org/download 该安装包可以配好环境变量 %JRUBY_HOME% 等 安装 bu ...
- windows安装rabbitmq
官网下载windows安装版本:http://www.rabbitmq.com/install-windows.html ,安装文件rabbitmq-server-3.6.5.exe 前提:安装erl ...
- windows 安装 mongodb
windows 安装 mongodb 下载 首先到官网下载合适的安装包,下载地址为 https://www.mongodb.com/download-center MongoDB for Window ...
- 2016 windows安装phing:安装成功
21:39 2016/7/212016 windows安装phing:安装成功注意:出现错误时就去更新pear:参见:http://www.cnblogs.com/pinnasky/archive/2 ...
- Windows安装和使用zookeeper
之前整理过一篇文章<zookeeper 分布式锁服务>,本文介绍的 Zookeeper 是以 3.4.5 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apach ...
- windows 安装mysql 步骤
Windows 安装mysql 5.7.12教程 1.在官网下载mysql5.7.12.zip并解压 复制默认配置文件my-default.ini,并命名为my.ini 使用记事本打开,修改如下配置 ...
- DOCKER windows安装
DOCKER windows安装 1.下载程序包 2. 设置环境变量 3. 启动DOCKERT 4. 分析start.sh 5. 利用SSH工具管理 6. 下载镜像 6.1 下载地址 6.2 用FTP ...
- openssh for windows安装
openssh for windows安装 2009-11-22 22:43:58 分类: WINDOWS 本文转自:http://blog.chinaunix.net/uid-7541208-id ...
随机推荐
- [HNOI 2010]chorus 合唱队
Description 题库链接 对于一个包含 \(N\) 个整数的数列 \(A\) ,我们可以把它的所有元素加入一个双头队列 \(B\) . 首先 \(A_1\) 作为队列的唯一元素,然后依次加入 ...
- 【NOIP2009】Hankson 的趣味题
题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲解 ...
- [BZOJ]4200: [Noi2015]小园丁与老司机
Time Limit: 20 Sec Memory Limit: 512 MBSec Special Judge Description 小园丁 Mr. S 负责看管一片田野,田野可以看作一个二维 ...
- NOIP2014-10-30模拟赛
T1:逗比三角形 [题目描述] 小J是一名OI退役滚粗文化课选手,他十分喜欢做题,尤其是裸题.他现在有一个二维盒子和一些二维三角形,这个盒子拥有无限的高度和L的宽度.而且他的三角形也都是一些锐角三角形 ...
- THUWC逛街记
1/28 这次打算去THUWC划个水,就定了1/29中午的飞机.同校有几个同学去PKUWC,求稳搭今天的飞机.中午时候听说今天飞长沙的飞机全都取消了,明天有没有也不好说( 事实证明29号有飞机:( ) ...
- 几种常用hash算法及原理
计算理论中,没有Hash函数的说法,只有单向函数的说法.所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据.用“人 类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很 ...
- mysql服务无法正常启动
这个时候多半是ini文件出了问题. 1.去检查你的my.ini的保存编码格式是不是ANSI,如果不是将其改为ANSI (一般我们修改my.ini时,都无法直接保存,而是选择另存为在其他目录下,再去替换 ...
- 在腾讯云的ubuntu服务器上面安装git服务器
GitHub是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用.搭建Git服 ...
- 两个App之间调起通信
前言 经常使用一些app的分享功能,比如点击QQ分享,就从app打开(跳转到)QQ,然后分享完之后又回到我们的app,那么这是怎样实现的呢? 假设有这么一个需求,由app1跳转到app2,当app2完 ...
- Python小代码_9_求水仙花数
for i in range(100, 1000): ge = i % 10 shi = i // 10 % 10 bai = i // 100 if ge ** 3 + shi ** 3 + bai ...