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 ...
随机推荐
- weak_ptr解决shared_ptr环状引用所引起的内存泄漏[转]
转载:http://blog.csdn.net/liuzhi1218/article/details/6993135 循环引用: 引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理 ...
- ●CodeForce 293E Close Vertices
题链: http://codeforces.com/contest/293/problem/E题解: 点分治,树状数组 大致思路和 POJ 1741 那道点分治入门题相同, 只是因为多了一个路径的边数 ...
- Linux mint界面过小无法安装(解决方法)
安装Linux mint时,到了分区的时候,有时候会出现界面过小(就是你点击不到确定键). 如下图所示: 大家可以看到下面的确定键无法显示,导致无法安装.网上查了一下都是清一色的下载vwware to ...
- 在 Mac OS X 上安装 TensorFlow
在 Mac OS X 上安装 TensorFlow 这个文档说明了如何在 Mac OS X 上安装 TensorFlow. 注意:从 1.2 版本开始,在 Mac OS X 上 TensorFlow ...
- openwrt 下添加sim760ce usb驱动
SIM7500_SIM7600 系列模块的 USB VID 是 0x1E0E PID 是 0x9001. 作为 Slave USB 设备,配置如下表 USB 接口波特率自适应 9600.115200 ...
- React Native 系列(三) -- 项目结构介绍
前言 本系列是基于React Native版本号0.44.3写的,相信大家看了本系列前面两篇文章之后,对于React Native的代码应该能看懂一点点了吧.本篇文章将带着大家来认识一下React N ...
- JAVA (集合和数据结构)
Collection和Collections的区别: 1.java.util.Collection 是一个集合接口.它提供了对集合对象进行基本操作的通用接口方法.Collection接口在Java 类 ...
- Axios 使用文档
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. 使用实例:http://www.cnblogs.com/coolslider/p/7838309.ht ...
- sololearn的c++学习记录_4m11d
Function Templates Functions and classes help to make programs easier to write, safer, and more main ...
- 关于java的Synchronized,你可能需要知道这些(下)
上一篇文章介绍了synchronized的基本使用方法和实现,在实现部分说明了synchronized的底层实现依赖系统互斥锁mutex,但是这个一个重型锁,竞争导致线程阻塞挂起,后续拿到锁后再恢复线 ...