问题
I'm currently running MS COCO MatlabAPI on WIN 10. I want to produce a file called gasonMex.mexw64. I have installed MinGW64 and simple Matlab .c file has been tested working.
I used
mex -v COMPFLAGS='$COMPFLAGS -std=c++11 -Wall' -largeArrayDims gasonMex.cpp
Verbose mode is on.
... Looking for compiler 'MinGW64 Compiler (C++)' ...
... Looking for environment variable 'MW_MINGW64_LOC' ...Yes ('C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9').
... Looking for file 'C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9\bin\g++.exe' ...Yes.
... Looking for folder 'C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9' ...Yes.
Found installed compiler 'MinGW64 Compiler (C++)'.
Set PATH = C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9\bin;C:\Program Files\MATLAB\R2016a\extern\include\win64;C:\Program Files\MATLAB\R2016a\extern\include;C:\Program Files\MATLAB\R2016a\simulink\include;C:\Program Files\MATLAB\R2016a\lib\win64;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\MATLAB\R2016a\runtime\win64;C:\Program Files\MATLAB\R2016a\bin;C:\Program Files\MATLAB\R2016a\polyspace\bin;C:\Users\Lin\AppData\Local\Microsoft\WindowsApps;
Set INCLUDE = C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9\include;
Set LIB = C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9\lib;;
Set MW_TARGET_ARCH = win64;
Set LIBPATH = C:\Program Files\MATLAB\R2016a\extern\lib\win64;
Options file details
Compiler location: C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9
Options file: C:\Users\Lin\AppData\Roaming\MathWorks\MATLAB\R2016a\mex_C++_win64.xml
CMDLINE1 : C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9\bin\g++ -c -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2016a/extern/include" -I"C:\Program Files\MATLAB\R2016a/simulink/include" -fexceptions -fno-omit-frame-pointer -O -DNDEBUG D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp -o C:\Users\Lin\AppData\Local\Temp\mex_930975203277711_10656\gasonMex.obj
CMDLINE2 : C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9\bin\g++ -m64 -Wl,--no-undefined -shared -s -Wl,"C:\Program Files\MATLAB\R2016a/extern/lib/win64/mingw64/mexFunction.def" C:\Users\Lin\AppData\Local\Temp\mex_930975203277711_10656\gasonMex.obj -L"C:\Program Files\MATLAB\R2016a\extern\lib\win64\mingw64" -llibmx -llibmex -llibmat -lm -llibmwlapack -llibmwblas -o gasonMex.mexw64
CXX : C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9\bin\g++
COMPILER : C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9\bin\g++
DEFINES : -m64 -DMATLAB_MEX_FILE
MATLABMEX : -DMATLAB_MEX_FILE
CXXFLAGS : -fexceptions -fno-omit-frame-pointer
INCLUDE : -I"C:\Program Files\MATLAB\R2016a/extern/include" -I"C:\Program Files\MATLAB\R2016a/simulink/include"
CXXOPTIMFLAGS : -O -DNDEBUG
CXXDEBUGFLAGS : -g
LDXX : C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9\bin\g++
LINKER : C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9\bin\g++
LDFLAGS : -m64 -Wl,--no-undefined
LDTYPE : -shared
LINKEXPORT : -Wl,"C:\Program Files\MATLAB\R2016a/extern/lib/win64/mingw64/mexFunction.def"
LIBLOC : C:\Program Files\MATLAB\R2016a\extern\lib\win64\mingw64
LINKLIBS : -L"C:\Program Files\MATLAB\R2016a\extern\lib\win64\mingw64" -llibmx -llibmex -llibmat -lm -llibmwlapack -llibmwblas
LDOPTIMFLAGS : -s
LDDEBUGFLAGS : -g
OBJEXT : .obj
LDEXT : .mexw64
SETENV : set COMPILER=g++
set COMPFLAGS=-c -fexceptions -fno-omit-frame-pointer -m64 -DMATLAB_MEX_FILE -DMATLAB_MEX_FILE
set OPTIMFLAGS=-O -DNDEBUG
set DEBUGFLAGS=-g
set LINKER=g++
set LINKFLAGS=-m64 -Wl,--no-undefined -shared -L"C:\Program Files\MATLAB\R2016a\extern\lib\win64\mingw64" -llibmx -llibmex -llibmat -lm -llibmwlapack -llibmwblas -Wl,"C:\Program Files\MATLAB\R2016a/extern/lib/win64/mingw64/mexFunction.def"
set LINKDEBUGFLAGS=-g
set NAME_OUTPUT= -o "%OUTDIR%%MEX_NAME%%MEX_EXT%"
MINGWROOT : C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9
MATLABROOT : C:\Program Files\MATLAB\R2016a
ARCH : win64
SRC : D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp
OBJ : C:\Users\Lin\AppData\Local\Temp\mex_930975203277711_10656\gasonMex.obj
OBJS : C:\Users\Lin\AppData\Local\Temp\mex_930975203277711_10656\gasonMex.obj
SRCROOT : D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex
DEF : C:\Users\Lin\AppData\Local\Temp\mex_930975203277711_10656\gasonMex.def
EXP : gasonMex.exp
LIB : gasonMex.lib
EXE : gasonMex.mexw64
ILK : gasonMex.ilk
MANIFEST : gasonMex.mexw64.manifest
TEMPNAME : gasonMex
EXEDIR :
EXENAME : gasonMex
COMPFLAGS : -std=c++11 -std=gnu++11 -Wall
OPTIM : -O -DNDEBUG
LINKOPTIM : -s
So it seems that c++11 is included. But I still got the error of
Building with 'MinGW64 Compiler (C++)'.
C:\MATLAB\SupportPackages\R2016a\MW_MinGW_4_9\bin\g++ -c -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2016a/extern/include" -I"C:\Program Files\MATLAB\R2016a/simulink/include" -fexceptions -fno-omit-frame-pointer -O -DNDEBUG D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp -o C:\Users\Lin\AppData\Local\Temp\mex_23236879859281_3800\gasonMex.obj
Error using mex
In file included from C:/MATLAB/SupportPackages/R2016a/MW_MinGW_4_9/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++/cstdint:35:0,
from D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:11:
C:/MATLAB/SupportPackages/R2016a/MW_MinGW_4_9/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++/bits/c++0x_warning.h:32:2: error: #error This
file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled
with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the \
^
In file included from D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:7:0:
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:32:56: error: 'nullptr' was not declared in this scope
JsonValue(JsonTag tag = JSON_NULL, void *payload = nullptr) {
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h: In function 'JsonIterator begin(JsonValue)':
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:84:24: warning: extended initializer lists only
available with -std=c++11 or -std=gnu++11
return JsonIterator{o.toNode()};
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h: In function 'JsonIterator end(JsonValue)':
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:87:24: warning: extended initializer lists only
available with -std=c++11 or -std=gnu++11
return JsonIterator{nullptr};
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:87:25: error: 'nullptr' was not declared in this scope
return JsonIterator{nullptr};
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h: At global scope:
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:115:15: warning: non-static data member initializers
only available with -std=c++11 or -std=gnu++11
} *head = nullptr;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:118:23: warning: defaulted and deleted functions only
available with -std=c++11 or -std=gnu++11
JsonAllocator() = default;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:119:44: warning: defaulted and deleted functions only
available with -std=c++11 or -std=gnu++11
JsonAllocator(const JsonAllocator &) = delete;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:120:55: warning: defaulted and deleted functions only
available with -std=c++11 or -std=gnu++11
JsonAllocator &operator=(const JsonAllocator &) = delete;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:121:33: error: expected ',' or '...' before '&&' token
JsonAllocator(JsonAllocator &&x) : head(x.head) {
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:121:36: error: invalid constructor; you probably meant
'JsonAllocator (const JsonAllocator&)'
JsonAllocator(JsonAllocator &&x) : head(x.head) {
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:124:44: error: expected ',' or '...' before '&&' token
JsonAllocator &operator=(JsonAllocator &&x) {
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:115:15: error: 'nullptr' was not declared in this
scope
} *head = nullptr;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h: In member function 'JsonAllocator&
JsonAllocator::operator=(JsonAllocator)':
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:125:16: error: 'x' was not declared in this scope
head = x.head;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gason.h:126:18: error: 'nullptr' was not declared in this
scope
x.head = nullptr;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp: In function 'siz length(const JsonValue&)':
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:20:17: error: 'n' does not name a type
siz k=0; auto n=a.toNode(); while(n) { k++; n=n->next; } return k;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:20:37: error: 'n' was not declared in this scope
siz k=0; auto n=a.toNode(); while(n) { k++; n=n->next; } return k;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp: In function 'bool isRegularObjArray(const
JsonValue&)':
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:27:17: error: 'j' does not name a type
k=0; for(auto j:o) keys[k++]=j->key;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:28:3: error: expected ';' before 'for'
for( auto i:a ) {
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:28:3: error: expected primary-expression before
'for'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:28:3: error: expected ';' before 'for'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:28:3: error: expected primary-expression before
'for'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:28:3: error: expected ')' before 'for'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:28:13: error: 'i' does not name a type
for( auto i:a ) {
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:32:3: error: expected ';' before 'delete'
delete [] keys; return true;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:32:13: error: could not convert '((keys != 0u) ?
operator delete [](((void*)keys)) : 0)' from 'void' to 'bool'
delete [] keys; return true;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:32:19: error: expected primary-expression before
'return'
delete [] keys; return true;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:32:19: error: expected ')' before 'return'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp: In function 'mxArray* json(const JsonValue&)':
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:47:16: error: 'i' does not name a type
for(auto i:o) isRegular=isRegular && i->value.getTag()==tag;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:48:7: error: expected ';' before 'if'
if( isRegular && tag==JSON_OBJECT && isRegularObjArray(o) ) {
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:48:7: error: expected primary-expression before
'if'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:48:7: error: expected ';' before 'if'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:48:7: error: expected primary-expression before
'if'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:48:7: error: expected ')' before 'if'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:50:23: error: 'j' does not name a type
k=0; for(auto j:o0) keys[k++]=j->key;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:51:9: error: expected ';' before 'M'
M = mxCreateStructMatrix(1,n,m,keys);
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:52:12: error: expected ')' before ';' token
k=0; for(auto i:o) { m=0; for(auto j:i->value)
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:52:23: error: 'i' does not name a type
k=0; for(auto i:o) { m=0; for(auto j:i->value)
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:54:9: error: expected ';' before 'delete'
delete [] keys; return M;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:54:19: error: could not convert '((keys != 0u) ?
operator delete [](((void*)keys)) : 0)' from 'void' to 'bool'
delete [] keys; return M;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:54:25: error: expected primary-expression before
'return'
delete [] keys; return M;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:54:25: error: expected ')' before 'return'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:57:23: error: 'i' does not name a type
k=0; for(auto i:o) p[k++]=i->value.toNumber(); return M;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:57:56: error: expected ';' before 'return'
k=0; for(auto i:o) p[k++]=i->value.toNumber(); return M;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:57:56: error: expected primary-expression before
'return'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:57:56: error: expected ';' before 'return'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:57:56: error: expected primary-expression before
'return'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:57:56: error: expected ')' before 'return'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:60:23: error: 'i' does not name a type
k=0; for(auto i:o) mxSetCell(M,k++,json(i->value));
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:61:9: error: expected ';' before 'return'
return M;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:61:9: error: expected primary-expression before
'return'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:61:9: error: expected ';' before 'return'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:61:9: error: expected primary-expression before
'return'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:61:9: error: expected ')' before 'return'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:67:21: error: 'i' does not name a type
k=0; for(auto i:o) keys[k++]=i->key;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:68:7: error: expected ';' before 'M'
M = mxCreateStructMatrix(1,1,n,keys); k=0;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:68:48: error: expected ')' before ';' token
M = mxCreateStructMatrix(1,1,n,keys); k=0;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:69:16: error: 'i' does not name a type
for(auto i:o) mxSetFieldByNumber(M,0,k++,json(i->value));
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:70:7: error: expected ';' before 'delete'
delete [] keys; return M;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:70:17: error: could not convert '((keys != 0u) ?
operator delete [](((void*)keys)) : 0)' from 'void' to 'bool'
delete [] keys; return M;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:70:23: error: expected primary-expression before
'return'
delete [] keys; return M;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:70:23: error: expected ')' before 'return'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp: In function 'ostrm& json(ostrm&, const
JsonValue*)':
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:113:26: error: 'i' does not name a type
S << "["; for(auto i:*o) {
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:115:7: error: expected ';' before 'S'
S << "]"; return S;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:115:17: error: expected primary-expression before
'return'
S << "]"; return S;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:115:17: error: expected ')' before 'return'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:117:26: error: 'i' does not name a type
S << "{"; for(auto i:*o) {
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:120:7: error: expected ';' before 'S'
S << "}"; return S;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:120:17: error: expected primary-expression before
'return'
S << "}"; return S;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:120:17: error: expected ')' before 'return'
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp: In function 'void mexFunction(int, mxArray**,
int, const mxArray**)':
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:180:27: error: call to
'JsonValue::JsonValue(JsonTag, void*)' uses the default argument for parameter 2, which is not yet defined
char *endptr; JsonValue val; JsonAllocator allocator;
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:207:14: error: 'o' does not name a type
for(auto o:val) {
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:213:3: error: expected ';' before '}' token
} else if(!strcmp(action,"merge")) {
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:213:3: error: expected primary-expression before
'}' token
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:213:3: error: expected ';' before '}' token
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:213:3: error: expected primary-expression before
'}' token
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:213:3: error: expected ')' before '}' token
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:213:3: error: expected primary-expression before
'}' token
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:224:16: error: 'j' does not name a type
for(auto j:val) json(S,&j->value) << (j->next ? "," : "");
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:225:7: error: expected ';' before 'mxFree'
mxFree(str); if(i<n-1) S<<",";
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:225:17: error: could not convert
'mxFree(((void*)str))' from 'void' to 'bool'
mxFree(str); if(i<n-1) S<<",";
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:225:20: error: expected primary-expression before
'if'
mxFree(str); if(i<n-1) S<<",";
^
D:\realtime_multi_2D_pose_est\training\dataset\COCO\coco\MatlabAPI\private\gasonMex.cpp:225:20: error: expected ')' before 'if'
Is there anything that I did wrong or anyone could offer some help? Thanks
来源:https://stackoverflow.com/questions/45690484/matlab-mex-already-had-std-c11-but-still-got-error-of-compiler-and-librar