How to get rid of error C2601?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I'm encountering few errors listed below. This happens when I try to run cpp code in matlab using mex command.
mesh.cpp(463) : error C2061: syntax error : identifier 'mxArray'
mesh.cpp(466) : error C2601: 'main' : local function definitions are illegal
mesh.cpp(464): this line contains a '{' which has not yet been matched
I'm doing it this way
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
int main(void)
{
<program content>
}
return;
}
Is this the right way of doing it?
Thanks in advance
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 22 Jul. 2012
Bearbeitet: Walter Roberson
am 22 Jul. 2012
Are you trying to use lcc to compile your .cpp ? lcc is strictly a C compiler that cannot be used for C++ at all. lcc also only supports the 1989 C standard and not any C introduced after that.
Also, you should not have a routine named "main": MATLAB itself is effectively the main routine. "main" is used strictly to designate the first routine called for an application, and is not used to designate routines called as library functions.
The structure should look similar to
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
<program content>
return;
}
2 Kommentare
Walter Roberson
am 22 Jul. 2012
The problem with "const" went away when you removed the nested function?
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Write C Functions Callable from MATLAB (MEX Files) finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!