我正在尝试为简单的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。我不知道我哪里错了。请帮忙!
答案 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
。