2

我在 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 数据和函数定义的所有行都会出现这个“预期表达式”错误。这里可能出了什么问题?

4

2 回答 2

2

您的文件具有扩展名.c,但您使用的是 C++ 样式的注释(以 引入//)。将文件重命名为firsttry.cpp然后调用

>> mex firsttry.cpp
于 2013-02-22T14:06:04.843 回答
1

实际上,标准的C89只有“ /*...*/”注释,mex编译器可以使用c编译器只支持C89。要解决这个问题,只需简单地将“ //...”注释替换为“ /*...*/”格式。

于 2015-09-28T03:33:22.243 回答