mex *.cpp under MATLAB 2013b and Xcode 5.0

2 次查看(过去 30 天)
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.

采纳的回答

Jan
Jan 2014-3-14
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.

更多回答(1 个)

Jacques
Jacques 2014-3-13
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 ?

类别

Help CenterFile Exchange 中查找有关 Write C Functions Callable from MATLAB (MEX Files) 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by