Unable to compile MEX on linux distro
Posted: 16 Aug 2011, 07:33
So i am trying to get the mex-files running on my machine. But i get an error in the compilation process:
Am i doing something wrong here? I am using a debian squeeze, which i downgraded to gcc-4.3(.4) and g++-4.3(.4) in combination with MatlabR2011a.
The full output:
Code: Select all
../../../../src/shared//utils/Uncopyable.h:19: error: ‘Uncopyable::Uncopyable(const Uncopyable&)’ is privateThe full output:
Code: Select all
Mex file will be built without multithreading support.
To enable multithreading in mex files, specify -USE_QT as an option to the buildmex command.
Building load_bcidat ...
-> mexopts.sh sourced from directory (DIR = $HOME/.matlab/$REL_VERSION)
FILE = /root/.matlab/R2011a/mexopts.sh
----------------------------------------------------------------
-> MATLAB = /usr/local/MATLAB/R2011a
-> CC = gcc
-> CC flags:
CFLAGS = -ansi -D_GNU_SOURCE -fexceptions -fPIC -fno-omit-frame-pointer -pthread
CDEBUGFLAGS = -g
COPTIMFLAGS = -O -DNDEBUG
CLIBS = -Wl,-rpath-link,/usr/local/MATLAB/R2011a/bin/glnxa64 -L/usr/local/MATLAB/R2011a/bin/glnxa64 -lmx -lmex -lmat -lm -lstdc++
arguments = -DBCI_TOOL -DBCI_MEX -DNO_STRICT -DNO_PCHINCLUDES -D_USE_MATH_DEFINES -DMX_COMPAT_32
-> CXX = g++
-> CXX flags:
CXXFLAGS = -ansi -D_GNU_SOURCE -fPIC -fno-omit-frame-pointer -pthread -fPIC -include gccprefix.h
CXXDEBUGFLAGS = -g
CXXOPTIMFLAGS = -O -DNDEBUG
CXXLIBS = -Wl,-rpath-link,/usr/local/MATLAB/R2011a/bin/glnxa64 -L/usr/local/MATLAB/R2011a/bin/glnxa64 -lmx -lmex -lmat -lm
arguments = -DBCI_TOOL -DBCI_MEX -DNO_STRICT -DNO_PCHINCLUDES -D_USE_MATH_DEFINES -DMX_COMPAT_32
-> FC = gfortran
-> FC flags:
FFLAGS = -fexceptions -fbackslash -fPIC -fno-omit-frame-pointer
FDEBUGFLAGS = -g
FOPTIMFLAGS = -O
FLIBS = -Wl,-rpath-link,/usr/local/MATLAB/R2011a/bin/glnxa64 -L/usr/local/MATLAB/R2011a/bin/glnxa64 -lmx -lmex -lmat -lm
arguments = -DBCI_TOOL -DBCI_MEX -DNO_STRICT -DNO_PCHINCLUDES -D_USE_MATH_DEFINES -DMX_COMPAT_32
-> LD = g++
-> Link flags:
LDFLAGS = -pthread -shared -Wl,--version-script,/usr/local/MATLAB/R2011a/extern/lib/glnxa64/mexFunction.map -Wl,--no-undefined -dead_strip
LDDEBUGFLAGS = -g
LDOPTIMFLAGS = -O
LDEXTENSION = .mexa64
arguments =
-> LDCXX =
-> Link flags:
LDCXXFLAGS =
LDCXXDEBUGFLAGS =
LDCXXOPTIMFLAGS =
LDCXXEXTENSION =
arguments =
----------------------------------------------------------------
-> g++ -c -I../.. -I../../../..//src/extlib/math -I../../../../src/shared/ -I../../../../src/shared//accessors -I../../../../src/shared//bcistream -I../../../../src/shared//config -I../../../../src/shared//fileio -I../../../../src/shared//fileio/dat -I../../../../src/shared//fileio/edf_gdf -I../../../../src/shared//modules -I../../../../src/shared//modules/SignalProcessing -I../../../../src/shared//types -I../../../../src/shared//utils -I../../../../src/shared//utils/Expression -I/usr/local/MATLAB/R2011a/extern/include -I/usr/local/MATLAB/R2011a/simulink/include -DMATLAB_MEX_FILE -ansi -D_GNU_SOURCE -fPIC -fno-omit-frame-pointer -pthread -fPIC -include gccprefix.h -DBCI_TOOL -DBCI_MEX -DNO_STRICT -DNO_PCHINCLUDES -D_USE_MATH_DEFINES -DMX_COMPAT_32 -O -DNDEBUG "load_bcidat.cpp"
../../../../src/shared//utils/Uncopyable.h: In copy constructor ‘Lock<BCIError::OutStream>::Lock(const Lock<BCIError::OutStream>&)’:
../../../../src/shared//utils/Lockable.h:35: instantiated from ‘Lock<T> TemporaryLock(T&) [with T = BCIError::OutStream]’
load_bcidat.cpp:203: instantiated from here
../../../../src/shared//utils/Uncopyable.h:19: error: ‘Uncopyable::Uncopyable(const Uncopyable&)’ is private
../../../../src/shared//utils/Lockable.h:35: error: within this context
../../../../src/shared//utils/Lockable.h: In function ‘Lock<T> TemporaryLock(T&) [with T = BCIError::OutStream]’:
../../../../src/shared//utils/Lockable.h:79: note: synthesized method ‘Lock<BCIError::OutStream>::Lock(const Lock<BCIError::OutStream>&)’ first required here
mex: compile of ' "load_bcidat.cpp"' failed.
??? Error using ==> mex at 208
Unable to complete successfully.
Error in ==> buildmex at 274
mex( args{:} );
Error in ==> buildmex at 217
buildmex( options_{:}, TARGETS{i} );