错误LNK2001:未解析的外部符号mexFunction

时间:2014-05-03 03:06:10

标签: c matlab mex

我正在尝试为简单的C函数创建一个MEX文件,如下所示:

#include <math.h>
#include <mex.h>

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]);
int main()
{
    int x;
    int c;
    c=2;
    x=4;
    mexprintf ("the value for y is %d",c*x*x);

}

我将文件保存为quad.c 但是在Matlab上,当我使用mex函数时

 mex quad.c

我收到错误:

 >> mex quadfinal.c
LINK : error LNK2001: unresolved external symbol mexFunction 
C:\Users\Oatmeel\AppData\Local\Temp\mex_UGPnwF\templib.x : fatal error LNK1120: 1 unresolved externals 

C:\PROGRA~1\MATLAB\R2013A\BIN\MEX.PL: Error: Link of 'quadfinal.mexw64' failed. 

Error using mex (line 206)
Unable to complete successfully.

我正确地包含了mexFunction。我不知道我哪里错了。请帮忙!

1 个答案:

答案 0 :(得分:1)

替换它:

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]);
int main()

由此:

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])

注意最后没有;

编辑:mexprintf也应为mexPrintf