This question already has an answer here:
Closed 4 years ago.
Mex generates error for // while compiling C code in Linux
(1个答案)
我正在写一个mex文件,将C代码链接到matlab。
这是我的简单mex文件,它什么都不做,编译得很好。
#include "mex.h"

#ifndef N
#define N 100
#endif

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
    /*validate input/output arguments */

}

但是如果我改变评论,像这样:
#include "mex.h"

#ifndef N
#define N 100
#endif

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
    //validate input/output arguments

}

然后我得到以下错误:
>> mex mexcallingmatlab.c
Building with 'gcc'.
Warning: You are using gcc version '4.8.2'. The version of gcc is not supported. The version currently supported with MEX is '4.7.x'. For a list of currently supported
compilers see: http://www.mathworks.com/support/compilers/current_release.
Warning: You are using gcc version '4.8.2-19ubuntu1)'. The version of gcc is not supported. The version currently supported with MEX is '4.7.x'. For a list of currently
supported compilers see: http://www.mathworks.com/support/compilers/current_release.
Error using mex
/home/dkumar/Mex_Codes_DKU/Mex_C_Codes_DKU2/mexcallingmatlab.c: In function ‘mexFunction’:
/home/dkumar/Mex_Codes_DKU/Mex_C_Codes_DKU2/mexcallingmatlab.c:9:5: error: expected expression before ‘/’ token
     // validate input/output arguments */

     ^

另外,如果我把文件中的任何一个保存为C++文件,那么它总是编译我是否使用//OR/*…*/.
有人能告诉我为什么“/”不起作用吗?

最佳答案

有一个响应here
特别地,
在Linux下,默认的MEX添加-ANSI,禁用C++注释。

关于c - mex文件:编译失败,并带有“//”注释;但是在使用“/* */”时可以编译良好,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28175376/

10-12 16:36