mardi 15 août 2017

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

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

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

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 \

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) {

Is there anything that I did wrong or anyone could offer some help? Thanks

Aucun commentaire:

Enregistrer un commentaire