Win10用Visual Studio C++2019安装FFTW3库并测试

VS C++ 2019安装fftw3库
 
首先下载fftw3.zip文件, ftp://ftp.fftw.org/pub/fftw/fftw-3.3.5-dll64.zip
 
然后编译,用x64_x86 Cross Tools Command Prompt for VS 2019的cmd命令行cd到解压后的文件夹,然后运行它的安装命令,即输出3个.lib文件。命令如下(注意与VC++的版本也有关系,可以查看README-WINDOWS里的安装提示)
 
     lib /machine:x64 /def:libfftw3f-3.def
     lib /machine:x64 /def:libfftw3-3.def
     lib /machine:x64 /def:libfftw3l-3.def
 
此时应当生成了以下几个文件
 
这代表安装完成了。
 
 
然后在VS C++创建控制台应用程序来测试一下:
接下来写程序,注意需要满足
  • 有可以调用的dll文件
  • include头文件
  • 添加链接库lib
 
第一个将3个dll文件复制到project 目录下:
或者 将K:\Documents\GitHub\fftw3下的libfftw3-3.dll、libfftw3f-3.dll、libfftw3l-3.dll复制到C:\Windows\System32目录下(这个似乎用不着吧。。。)
 
第二个可以在project手动添加: 编辑project的属性》配置属性》VC++目录》包含目录,加入"K:\Documents\GitHub\fftw3"这个路径。
然后不用指定include的路径,
#include "fftw3.h"
也可以不 编辑project的属性,并直接指定include路径。
#include "K:\Documents\GitHub\fftw3\fftw3.h"
 
第三个可以在project手动添加 : 编辑project的 属性》配置属性》VC++目录》库目录”, 加入"K:\Documents\GitHub\fftw3"这个路径。
然后在头文件中添加宏命令
#pragma comment( lib, "libfftw3-3.lib")
#pragma comment( lib, "libfftw3f-3.lib")
#pragma comment( lib, "libfftw3l-3.lib")
也可以不配置属性,直接指定.lib文件的路径
#pragma comment(lib, "K:\\Documents\\GitHub\\fftw3\\libfftw3-3.lib")
#pragma comment(lib, "K:\\Documents\\GitHub\\fftw3\\libfftw3f-3.lib")
#pragma comment(lib, "K:\\Documents\\GitHub\\fftw3\\libfftw3l-3.lib")
 
 
于是,最终版的程序如下:
// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#pragma comment(lib, "libfftw3-3.lib")
#pragma comment(lib, "libfftw3f-3.lib")
#pragma comment(lib, "libfftw3l-3.lib")
/*————————————————
版权声明:本文为CSDN博主「Naruto_Q」的原创文章,遵循CC 4.0 BY - SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
https ://blog.csdn.net/piaoxuezhong/article/details/78357905
https://blog.csdn.net/moyumoyu/article/details/7950528
*/
#include "fftw3.h"
//#include "K:\Documents\GitHub\fftw3\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;
}
 

 

 
调试采用x64版本的debugger,输出结果如图
 
 
  • 7
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值