MATLAB Mex : Already had -std=c++11, but still got error of “compiler and library support”

半腔热情 提交于 2019-12-12 04:06:31

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!