vs调用fftw库

从官网下载自己系统所对应的fftw库
fftw库安装包
我用的是vs2010(32位),所以我下载的是32位的。
下载的安装包放置在D盘,解压到fftw文件夹中
1.安装及配置
打开vs->工具->Visual Studio命令提示或者WIN+R打开命令->cmd打开命令提示窗口
a.打开Visual Studio命令提示窗口,直接输入lib.exe即可激活
vs调用fftw库_第1张图片
关闭Visual Studio命令提示窗口,然后重新打开,输入命令D:进入D盘
然后输入cd\fftw进入该文件夹
vs调用fftw库_第2张图片
输入命令:
lib /def:libfftw3-3.def
lib /def:libfftw3f-3.def
lib /def:libfftw3l-3.def
D:\fftw中会生成对应的lib文件:
libfftw3-3.lib
libfftw3f-3.lib
libfftw3l-3.lib
vs调用fftw库_第3张图片

安装过程结束
3.配置
打开vs新建win32控制台应用程序
项目->属性->C/C++->附加包含目录​,加上D:\fftw

​项目->属性->​链接器->常规->附加库目录,加上D:\fftw

项目->属性->链接器->输入->附加​​依赖项,加上libfftw3-3.lib、libfftw3f-3.lib、libfftw3l-3.lib
将D盘中fftw文件中的fftw3.h,libfftw3-3.dll、libfftw3f-3.dll、libfftw3l-3.dll文件拷贝项目文件夹里(有.vcxproj文件的那个文件夹)
vs调用fftw库_第4张图片
在项目中添加现有项,将fftw3.h添加至项目中
vs调用fftw库_第5张图片
测试代码

#include "stdafx.h"
//防止出错,添加以下内容
#pragma comment(lib, "libfftw3-3.lib")
#pragma comment(lib, "libfftw3f-3.lib")
#pragma comment(lib, "libfftw3l-3.lib")

#include "fftw3.h"
#include 
#define N 8
int main()
{
    int i;
    fftw_complex *din,*out;
    fftw_plan p;
    din  = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
    out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
    if((din==NULL)||(out==NULL))
    {
        printf("Error:insufficient available memory\n");
    }
    else
    {
        for(i=0; i/*测试数据*/
        {
            din[i][0] = i+1;
            din[i][1] = 0;
        }
    }
    p = fftw_plan_dft_1d(N, din, out, FFTW_FORWARD,FFTW_ESTIMATE);
    fftw_execute(p); /* repeat as needed */
    fftw_destroy_plan(p);
    fftw_cleanup();
    for(i=0;i/*OUTPUT*/
    {
        printf("%f,%fi\n",din[i][0],din[i][1]);
    }
    printf("\n");
    for(i=0;i/*OUTPUT*/
    {
        printf("%f,%fi\n",out[i][0],out[i][1]);
    }

    if(din!=NULL) fftw_free(din);
    if(out!=NULL) fftw_free(out);
    getchar();
    return 0;
}

运行结果如下:
vs调用fftw库_第6张图片

你可能感兴趣的:(vs调用fftw库)