赞
踩
FFTW是一个C子程序库,用于计算一个或多个维度的任意输入大小的离散傅里叶变换(DFT),以及实数和复数数据(以及偶数/奇数数据,即离散余弦/正弦变换或DCT/DST)。
FFTW的最新官方版本是3.3.10版。3.3版引入了对AVX x86扩展、基于MPI的分布式内存实现和Fortran 2003 API的支持。3.3.1版引入了对ARM Neon扩展的支持。有关详细信息,请参阅官网FFTW官方文档
首先从官网下载地址中下载dll动态链接库.
本文只介绍得到.lib文件(即静态库)后静态调用的方法。
首先在开始菜单中找到VS的目录(我安装的版本是Visual studio community 2022),在目录下找到Developer Command Prompt for VS 2022.exe并运行。
这里会显示VS的安装路径。将fftw官网下载的压缩包解压到某个位置,建议和项目文件放一起。然后在这里切换到你解压后的目录。我将其解压到了E盘这个目录。
然后切换路径。
输入官网给出的指令:
lib /def:libfftw3-3.def
lib /def:libfftw3f-3.def
lib /def:libfftw3l-3.def
输入指令后就会在目录下生成.lib文件.
可以看到目录下多了几个文件。
接着,我们就可以使用QT或者VS导入库。
打开QT,在项目文件夹上右键–添加库–外部库–选择文件libfftw3-3.lib。
QT导入完成,可看到.pro文件中添加了几行。
打开VS,工具栏项目–属性–VC++目录,库目录添加.lib文件路径,包含目录添加.h文件路径。
接着,在链接器–输入–附加依赖项中输入.lib文件名。
简单写个测试函数验证是否成功。
#include<fftw3.h> using namespace std; void myfft() { fftw_complex* in, * out; int N = 1024; in = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * N); out = (fftw_complex*)fftw_malloc(sizeof(fftw_complex) * N); for (int i = 0; i < N; i++) { in[i][0] = 1; in[i][1] = 0; } fftw_plan p; p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE); fftw_execute(p); /* repeat as needed */ fftw_destroy_plan(p); fftw_free(in); fftw_free(out); }
如果不报错的话基本就可以正常使用了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。