Сообщение об ошибке должно содержать блоки (для двух разных ошибок), давайте рассмотрим только первое. Я разделил его на три "строки":
/disks/local/sceneflow2/./external/libtrws/trwsMex.cpp:14:13: error: conflicting declaration
‘typedef int mwSize’
In file included from /usr/local/MATLAB/R2016a/extern/include/matrix.h:25:0,
from /usr/local/MATLAB/R2016a/extern/include/mex.h:51,
from /disks/local/sceneflow2/./external/libtrws/trwsMex.cpp:9:
/usr/local/MATLAB/R2016a/extern/include/tmwtypes.h:795:19: error: ‘mwSize’ has a previous
declaration as ‘typedef size_t mwSize’
Первая строка говорит, что компилятор нашел объявление для mwSize
в строке 14 вашего trwsMex.cpp
файла, где написано typedef int mwSize
.
Последняя строка говорит, что этот mwSize
уже был определен в заголовке tmwtypes.h
, который поставляется с MATLAB.
Вторая строка говорит, что этот заголовочный файл был включен matrix.h
, который включен mex.h
, который включен вашим trwsMex.cpp
в строке 9.
Итак, чтобы исправить ошибку, не определяйте mwSize
и mwIndex
в исходном коде вашего MEX-файла, они определяются заголовками MATLAB.