操作步骤参照:https://blog.csdn.net/wobujianni/article/details/50244525
https://blog.csdn.net/wwoll/article/details/52937027
在自己的使用过程中还遇到几个小细节,特别说明一下。
Windows下FFTW库的安装
1、 从网址http://www.fftw.org/install/windows.html上获得FFTW的windows dll预编译版本;
2、 解压缩文件,打开windows命令行窗口,就是那个cmd窗口啦。然后把当前目录转换到你解压缩文件的目录下。
cd C:\\Program Files <x86>\Microsoft Visual Studio 14.0\VC\bin
3、 在cmd命令窗口输入以下3个指令
lib /def:libfftw3-3.def
lib /def:libfftw3f-3.def
lib /def:libfftw3l-3.def
若出现“lib不是内部或外部命令”问题,就不用cmd,而是安装的VC菜单里的命令提示符,如我的机器使用“VS2015 x86 x64兼容工具提示符”。
注意,注意这里默认指定machine为X86架构。x64架构就需要改成
lib/machine:X64 /def:libfftw3-3.def
lib/machine:X64 /def:libfftw3f-3.def
lib/machine:X64 /def:libfftw3l-3.def
注意,X64后面有一个空格,空格,空格。。。。这样就生成了x64架构的lib与dll文件,还支持ARM, EBC, X86。
注意第三个.def文件中的“3l-3”中的是字母L的小写,不是1。
4、 将libfftw3f-3.dll libfftw3-3.dll libfftw3l-3.dll放入windows/system32中,然后将生成的库文件libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib放入VS中的lib文件夹,把fftw3.h放入include文件夹。
注意,如果是amd64, 需要将3个lib文件复制到VC/lib/amd64文件夹中,而不是放在VC/lib文件夹下。这里具体复制的目标路径请查看新建工程后打开属性页-》vc++目录-》库目录,看在计算的值里面使用的是VC/lib还是VC/lib/amd64还是其他路径。
5、 在新建工程的时候,记得#include”fftw3.h“,然后设置参数:”项目“==>”项目属性”==>”配置属性”==>”链接器”==>”输入”==>”附加依赖项”,将以下三项添加进去:[这一步很重要!!!]
libfftw3-3.lib
libfftw3f-3.lib
libfftw3l-3.lib
接下来就是测试使用了,使用大家常用的测试代码:
#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);
system("pause");//暂停
return 0;
}
看程序是否可以成功运行,祝大家顺利安装!