如何在MATLAB MEX文件中使用FFTW lib文件?

用户名

我正在尝试在MATLAB MEX文件中使用FFTW库。我从Windows的FFTW.ORG获取此库,并使用此代码制作lib文件

lib /def:libfftw3-3.def
lib /def:libfftw3f-3.def
lib /def:libfftw3l-3.def

然后,当我使用以下代码直接在VC ++(Visual Studio 2013)中使用这些文件时

#include <errno.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include "C:\Users\Maysam\Downloads\Compressed\fftw-3.3.4\api\fftw3.h"
#pragma comment(lib, "C:\\Windows\\SysWOW64\\libfftw3-3.lib")

void main()
{
    int i, j, bw, bw2_1, size, size2_1, nrow, ncol;
    int data_is_real;
    int cutoff;
    int rank, howmany_rank;
    double *rresult, *iresult, *rdata, *idata;
    double *workspace, *weights;

    fftw_plan dctPlan;
    fftw_plan fftPlan;
    fftw_iodim dims[1], howmany_dims[1];

    bw = 2;
    weights = (double *)malloc(sizeof(double) * 4 * bw);
    rdata =(double *)malloc(sizeof(double) * 5 * bw);
    dctPlan = fftw_plan_r2r_1d(2 * bw, weights, rdata,
        FFTW_REDFT10, FFTW_ESTIMATE);
}

一切都OK,并且编译没有错误,但是当我尝试编译并使用此代码时

#include <errno.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include "C:\Users\Maysam\Downloads\Compressed\fftw-3.3.4\api\fftw3.h"
#include <mex.h>

void  mexFunction ( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])  
{
    int i, j, bw, bw2_1, size, size2_1, nrow, ncol;
    int data_is_real;
    int cutoff;
    int rank, howmany_rank;
    double *rresult, *iresult, *rdata, *idata;
    double *workspace, *weights;

    fftw_plan dctPlan;
    fftw_plan fftPlan;
    fftw_iodim dims[1], howmany_dims[1];

    bw = 2;
    weights = (double *)malloc(sizeof(double) * 4 * bw);
    rdata = (double *)malloc(sizeof(double) * 5 * bw);
    dctPlan = fftw_plan_r2r_1d(2 * bw, weights, rdata,
        FFTW_REDFT10, FFTW_ESTIMATE);
}

mexMATLAB中像下面

mex '-LC:\fftw-3.3.4-dll32' -llibfftw3-3.lib test.c

我得到这个错误

Error using mex
   Creating library test.lib and object test.exp
test.obj : error LNK2019: unresolved external symbol fftw_plan_r2r_1d referenced in function mexFunction
test.mexw64 : fatal error LNK1120: 1 unresolved externals

有没有人有解决此问题的建议或想法?

查普

您需要将64位FFTW库与64位MATLAB匹配(正在​​构建.mexw64文件)。您的构建命令

mex '-LC:\fftw-3.3.4-dll32' -llibfftw3-3.lib test.c

应指向包含64位FFTW库的文件夹。例如:

mex -LC:\fftw-3.3.4-dll64 -llibfftw3-3.lib test.c

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在MATLAB MEX文件中使用FFTW lib文件?

来自分类Dev

如何在 Fortran mex 文件中使用 BLAS 函数

来自分类Dev

在Matlab mex文件中使用本征向量

来自分类Dev

在Matlab mex文件中使用本征向量

来自分类Dev

如何在C#项目中使用LIB文件?

来自分类Dev

如何在gcc中使用库“ .lib”和“ .a”文件

来自分类Dev

如何在C#项目中使用LIB文件?

来自分类Dev

如何在Matlab中的mex文件中调用ac函数?

来自分类Dev

Matlab:如何在神经网络中使用.dat文件?

来自分类Dev

如何检查LIB文件版本?

来自分类Dev

Rails 4:如何在初始化文件中使用lib中的模块?

来自分类Dev

如何在Masm中或更具体地在.lib文件中使用库?

来自分类Dev

在C Mex文件中使用BLAS库

来自分类Dev

什么是.exp文件和.lib文件,如何在我的C#项目中使用它们?

来自分类Dev

Rails:如何要求lib文件夹中的文件才能在控制器中使用?

来自分类Dev

如何在Matlab中导入pts文件

来自分类Dev

如何在Matlab中读取.npy文件

来自分类Dev

如何在Matlab中将位写入文件

来自分类Dev

如何在Matlab中读取.npy文件

来自分类Dev

如何在 MATLAB 中处理文件列表

来自分类Dev

如何在jar文件中使用文件?

来自分类Dev

是否可以在matlab之外使用matlab MEX文件?

来自分类Dev

如何在模块中导入lib文件夹

来自分类Dev

如何在AWS Lambda中加载lib文件夹?

来自分类Dev

如何在cmake中指定.lib文件的路径?

来自分类Dev

如何在 matlab 2014a、visual studio 2017 和 win10 中编译 mex 文件?

来自分类Dev

如何获得视觉C ++ lib文件图标

来自分类Dev

Magento:如何从lib目录加载js文件?

来自分类Dev

如何保持/ lib文件夹的清洁?

Related 相关文章

热门标签

归档