mex 编译错误:Matlab 数据类型和函数的预期表达式错误
Posted
技术标签:
【中文标题】mex 编译错误:Matlab 数据类型和函数的预期表达式错误【英文标题】:mex compile error: expected expression error at Matlab datatype and function 【发布时间】:2013-02-22 13:46:25 【问题描述】:我是在 linux 上开始 mex,所以我从下面这个小代码开始并尝试编译:
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
mxArray *inputArrayData; // array for input array pointers
但是我的编译结果是:
>> mex firsttry.c
firsttry.c: In function ‘mexFunction’:
firsttry.c:5: error: expected expression before '/' token
我尝试了其他一些东西,似乎在涉及 matlab 数据和函数定义的所有行都会出现这个“预期表达式”错误。这里可能出了什么问题?
【问题讨论】:
【参考方案1】:您的文件具有扩展名 .c
,但您使用的是 C++ 样式的 cmets(由 //
引入)。将你的文件重命名为firsttry.cpp
,然后调用
>> mex firsttry.cpp
【讨论】:
【参考方案2】:其实标准C89只有“/*...*/
”注释,mex编译器可以使用c编译器只支持C89。
要解决此问题,只需将“//...
”注释替换为“/*...*/
”格式即可。
【讨论】:
以上是关于mex 编译错误:Matlab 数据类型和函数的预期表达式错误的主要内容,如果未能解决你的问题,请参考以下文章
matlab 解决 错误使用 mex 未找到支持的编译器或 SDK
MATLAB + Mex + OpenCV:链接和编译正确,但在运行时找不到库