mex *.cpp under MATLAB 2013b and Xcode 5.0

2 visualizaciones (últimos 30 días)
Jan
Jan el 13 de Mzo. de 2014
Respondida: Jan el 14 de Mzo. de 2014
Compiling this simple code:
#include <math.h>
#include <matrix.h>
#include <mex.h>
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
mexPrintf("Hello World!\n");
}
results in the following error when I call " mex helloworld.cpp ":
In file included from helloworld.cpp:2:
In file included from /Applications/MATLAB_R2013b.app/extern/include/matrix.h:252:
/Applications/MATLAB_R2013b.app/extern/include/tmwtypes.h:831:9: error: unknown type name 'char16_t'
typedef char16_t CHAR16_T;
^
1 error generated.
mex: compile of ' "helloworld.cpp"' failed.
Unable to complete successfully.
However, when I call " mex helloworld.c " it works fine. Can someone help me to fix that issue? I need to use the .cpp compiler for a project that I'm working on.

Respuesta aceptada

Jan
Jan el 14 de Mzo. de 2014
Thanks Jacques, you were right. The compiler didn't use c++11. This solved my problem:
Add -std=c++11 to CXXFLAGS in your current mexopts.sh.

Más respuestas (1)

Jacques
Jacques el 13 de Mzo. de 2014
char16_t is available since the c++11 version of the c++ standard. Your compiler might not comply with this version.
Look at the file /Applications/MATLAB_R2013b.app/extern/include/tmwtypes.h Does it uses char16_t ?

Categorías

Más información sobre Write C Functions Callable from MATLAB (MEX Files) en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by