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:链接和编译正确,但在运行时找不到库

Mex 文件执行中的错误,Matlab 窗口

如何使用 Eclipse(4.20.0 版本)和 Matlab(R2021a)在 Windows 中编译 mex 函数

Matlab Mex代码未编译

来自 MATLAB Mex 库的链接错误