FFTW入门(1):环境搭建

本文介绍了FFTW库的功能及最新版本特性,并提供了在Windows环境下使用Visual Studio构建FFTW库的过程,包括从DLL文件生成LIB文件的方法,以及如何在QT和VS中导入库进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FFTW是一个C子程序库,用于计算一个或多个维度的任意输入大小的离散傅里叶变换(DFT),以及实数和复数数据(以及偶数/奇数数据,即离散余弦/正弦变换或DCT/DST)。
FFTW的最新官方版本是3.3.10版。3.3版引入了对AVX x86扩展、基于MPI的分布式内存实现和Fortran 2003 API的支持。3.3.1版引入了对ARM Neon扩展的支持。有关详细信息,请参阅官网FFTW官方文档

Windows下添加fftw库

首先从官网下载地址中下载dll动态链接库.
在这里插入图片描述
本文只介绍得到.lib文件(即静态库)后静态调用的方法。

从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导入FFTW库

打开QT,在项目文件夹上右键–添加库–外部库–选择文件libfftw3-3.lib。
在这里插入图片描述
QT导入完成,可看到.pro文件中添加了几行。

VS导入FFTW库

打开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);
}

如果不报错的话基本就可以正常使用了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值