经过admin在visual studio 2008下验证通过下面的配置过程和第一个测试用例程序。 原帖URL: http://blog.csdn.net/moyumoyu/article/details/7950528 ============= FFTW是用来计算一维或者多维的离散傅里叶变换,输入可以为实数序列也可以为复数序列的C语言的子函数库,FFTW是免费软件,是作为fft函数库的各种应用的上佳选择。 1. 从网站http://www.fftw.org上下载最新的预编译文件: Download URL: http://www.fftw.org/install/windows.html 32-bit version: fftw-3.2.2.pl1-dll32.zip (1.8MB) 64-bit version: fftw-3.2.2-dll64.zip (2.2MB) 2.安装lib.exe 其实这是VC自带的工具,在VC6.0和VS05中都有的,我机器上安装了VC6.0及VS2005,lib.exe的路径如下: D:\Program Files\Microsoft Visual Studio\VC98\Bin (VC6.0的目录) D:\Program Files\Microsoft Visual Studio 8\VC\bin (VS2005的目录) 打开Windows的命令提示行窗口(CMD窗口),改变当前目录到D:\Program Files\Microsoft Visual Studio 8\VC\bin(使用cd命令) 把\vs安装目录\Common7\IDE 里面的mspdb80.dll,mspdbcore.dll,mspdbsrv.exe,msobj80.dll 复制到上面的bin文件夹里,把libfftw3-3.def,libfftw3f-3.def,libfftw3l-3.def也拷到bin下面。 然后输入lib.exe(即运行),会有如下提示: Microsoft Windows XP [版本 5.1.2600] C:\Documents and Settings\admin>cd D:\Program Files\Microsoft Visual Studio\VC98 C:\Documents and Settings\admin>D: D:\Program Files\Microsoft Visual Studio\VC98\Bin>lib.exe usage: LIB [options] [files] options: /CONVERT D:\Program Files\Microsoft Visual Studio\VC98\Bin> 这时候你的lib命令就可以使用了。 3.在cmd进入上面提到的bin目录,并运行 ====RuanYuan.Net@admin 2013.04.17追加============= 如果你是使用Win7系统,且在输入以上命令后,出现如下错误, LINK: fatal error LNK1104: file 'libfftw3-3.lib' can not be opened. 那么原因之一很有可能是因为Win7的权限问题 解决方法:将/vc/bin 文件夹内的所有文件copy到c盘以外,例如d盘,那么执行相同的命令运行lib命令即可 PS:此问题困扰了我一个下午加次日一个上午,Win7不给任何提示,蛋疼! 解决问题灵感来自与下帖http://liuxingguang.blogspot.jp/2012/05/use-fftw-in-c.html 中的Lior Ella 的回答 ====RuanYuan.Net@admin 2013.04.17追加============= 4.将libfftw3f-3.dll libfftw3-3.dll libfftw3l-3.dll放入windows/system32中,然后将生成的库文件libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib放入vc中的lib文件夹,把fftw3.h放入include文件夹。 5.在你新建工程的时候,记得#include”fftw3.h“,然后设置参数:”项目“==>"项目属性"==>"配置属性"==>"链接器"==>"输入"==>"附加依赖项",将以下三项添加进去: libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib 6.完成。 7.下面是从别的博客上找到的一个测试代码: [C++] 纯文本查看 复制代码 #include "fftw3.h" int main() { fftw_complex *in, *out; fftw_plan p; int N= 8; int i; int j; in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); for( i=0; i < N; i++) { in[i][0] = 1.0; in[i][1] = 0.0; printf("%6.2f ",in[i][0]); } printf("\n"); p=fftw_plan_dft_1d(N,in,out, FFTW_FORWARD, FFTW_ESTIMATE); fftw_execute(p); /* repeat as needed*/ for(j = 0;j < N;j++) { printf("%6.2f ",out[j][0]); } printf("\n"); fftw_destroy_plan(p); fftw_free(in); fftw_free(out); return 0; } [C++] 纯文本查看 复制代码 #include "fftw3.h" int main() { fftw_complex *in, *out; fftw_plan p; int N= 8; int i; int j; in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); for( i=0; i < N; i++) { in[i][0] = 1.0; in[i][1] = 0.0; printf("%6.2f ",in[i][0]); } printf("\n"); p=fftw_plan_dft_1d(N,in,out, FFTW_FORWARD, FFTW_ESTIMATE); fftw_execute(p); /* repeat as needed*/ for(j = 0;j < N;j++) { printf("%6.2f ",out[j][0]); } printf("\n"); fftw_destroy_plan(p); fftw_free(in); fftw_free(out); return 0; } |
[技术| 编程·课件·Linux] Windows下FFTW库的安装配置
admin
· 发布于 2012-12-14 13:58
· 2516 次阅读
转载文章时务必注明原作者及原始链接,并注明「发表于 软院网 RuanYuan.Net 」,并不得对作品进行修改。
暂无回复。