win7x64、VSx64环境下安装和使用FFTW
2015-12-10 00:28
316 查看
虽然安装方法网上有很多,但说得不够明白,还是让我花费了一点时间才弄好。先将详细过程记录下来。
参考博客文章:
http://blog.sina.com.cn/s/blog_4be364b70101kv0d.html
/article/8329623.html
http://anony3721.blog.163.com/blog/static/511974201312322910595/
运行环境:windows 7 x64, visual studio 2010 x64。
应用于64位程序。
64-bit version: fftw-3.3.4-dll64.zip (2.8MB)
解压缩,如至 D:\fftw 。
系统开始菜单栏中打开Visual Studio x64 Win64 Command Prompt (2010),在命令窗口中使用cd命令切换到fftw的解压缩文件夹(如D:\fftw)下.
在命令窗口下依次输入
lib /machine:x64 /def:libfftw3-3.def
lib /machine:x64 /def:libfftw3l-3.def
lib /machine:x64 /def:libfftw3f-3.def
这样会在fftw的解压缩文件夹下生成对应的.lib文件。适用下面的这段程序测试。
1. 用VS建立一个win32控制台程序,将下面代码拷入,注意solution platform 选择x64,也就是下图这个地方:
在project—properties中设置如下:
1)configuration properties—-c/c++—-General—-additional include directories中设置头文件“fftw3.h”所在的路径(如D:\fftw)
2)configuration properties—-linker—-General—-additional library directories中设置库文件”libfftw3-3.lib”、”libfftw3f-3.lib”、”libfftw3l-3.lib”所在的路径(如D:\fftw)
3)configuration properties—-linker—-Input—-additional dependencies中填写”libfftw3-3.lib”、”libfftw3f-3.lib”、”libfftw3l-3.lib”三个库文件名。
运行。成功的结果如下:
注意:如果想像代码里那样,用pragma comment直接标明三个库文件的引用路径,则2步的第3)小步可以省略。
代码:
参考博客文章:
http://blog.sina.com.cn/s/blog_4be364b70101kv0d.html
/article/8329623.html
http://anony3721.blog.163.com/blog/static/511974201312322910595/
运行环境
FFTW的编译方法不说,这里只说使用方法。运行环境:windows 7 x64, visual studio 2010 x64。
应用于64位程序。
安装
官网上下载适用Windows的已编译好的x64压缩包:64-bit version: fftw-3.3.4-dll64.zip (2.8MB)
解压缩,如至 D:\fftw 。
系统开始菜单栏中打开Visual Studio x64 Win64 Command Prompt (2010),在命令窗口中使用cd命令切换到fftw的解压缩文件夹(如D:\fftw)下.
在命令窗口下依次输入
lib /machine:x64 /def:libfftw3-3.def
lib /machine:x64 /def:libfftw3l-3.def
lib /machine:x64 /def:libfftw3f-3.def
这样会在fftw的解压缩文件夹下生成对应的.lib文件。适用下面的这段程序测试。
使用
测试程序在最下方,为网上搜来。使用方法为:1. 用VS建立一个win32控制台程序,将下面代码拷入,注意solution platform 选择x64,也就是下图这个地方:
在project—properties中设置如下:
1)configuration properties—-c/c++—-General—-additional include directories中设置头文件“fftw3.h”所在的路径(如D:\fftw)
2)configuration properties—-linker—-General—-additional library directories中设置库文件”libfftw3-3.lib”、”libfftw3f-3.lib”、”libfftw3l-3.lib”所在的路径(如D:\fftw)
3)configuration properties—-linker—-Input—-additional dependencies中填写”libfftw3-3.lib”、”libfftw3f-3.lib”、”libfftw3l-3.lib”三个库文件名。
运行。成功的结果如下:
注意:如果想像代码里那样,用pragma comment直接标明三个库文件的引用路径,则2步的第3)小步可以省略。
代码:
#include "fftw3.h" #include <stdio.h> //#pragma comment(lib, "libfftw3-3.lib") //#pragma comment(lib, "libfftw3f-3.lib") //#pragma comment(lib, "libfftw3l-3.lib") #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; }
相关文章推荐
- I2C驱动2
- Linux中Samba详细安装【转】
- 利用Hexo搭建个人博客-博客初始化篇
- HTTP状态码
- oracle基础备份和还原
- HBase源码学习系列
- 前端课程收集
- 可视化博客
- php--关于逻辑运算符优先级
- Hadoop源码分析之Configuration
- 期中架构有感
- IOS银联支付的流程
- 熟悉Linux常用命令 (慢慢完善)
- *LeetCode 10 Regular Expression Matching 正则表达式
- UICollectionView must be initialized with a non-nil layout parameter
- (解题报告)HDU2012---素数判定
- DML(Oralce)
- Hadoop周边生态软件和简要工作原理(二)
- Linux 文件系统权限(二)
- kmp算法中真/后缀作用及next数组计算