Проблемы с запуском команд mex в Octave - PullRequest
0 голосов
/ 15 ноября 2018

Я использую Ubuntu и пытаюсь использовать Octave для запуска сценария Matlab, который запускает mex-компилятор для некоторых файлов cpp https://github.com/yuxng/MDP_Tracking/blob/master/compile.m У меня уже установлено требование OpenCV, но я получаю некоторые ошибки.

В основном команды в октаве

compile
MOT_test

Ошибки, которые я получил от команды compile, показаны ниже. Основываясь на моем поиске в Google и этой теме Создание файла Mex с Octave (проблема с обертками) , похоже, что проблема компиляции MDP Tracker остается нерешенной. У меня есть минуты опыта работы с мексами и октавами, поэтому я мало что могу сделать, кроме как спросить. Я надеюсь получить некоторую помощь здесь. Спасибо!

octave:4> compile
In file included from imResampleMex.cpp:7:0:
wrappers.hpp:22:24: error: ‘wrCalloc’ declared as an ‘inline’ variable
 inline void* wrCalloc( size_t num, size_t size ) { return calloc(num,size); }
                        ^~~~~~
wrappers.hpp:22:24: error: ‘size_t’ was not declared in this scope
wrappers.hpp:22:36: error: ‘size_t’ was not declared in this scope
 inline void* wrCalloc( size_t num, size_t size ) { return calloc(num,size); }
                                    ^~~~~~
wrappers.hpp:22:48: error: expression list treated as compound expression in initializer [-fpermissive]
 inline void* wrCalloc( size_t num, size_t size ) { return calloc(num,size); }
                                                ^
wrappers.hpp:23:24: error: ‘wrMalloc’ declared as an ‘inline’ variable
 inline void* wrMalloc( size_t size ) { return malloc(size); }
                        ^~~~~~
wrappers.hpp:23:24: error: ‘size_t’ was not declared in this scope
wrappers.hpp: In function ‘void wrFree(void*)’:
wrappers.hpp:24:44: error: ‘free’ was not declared in this scope
 inline void wrFree( void * ptr ) { free(ptr); }
                                            ^
wrappers.hpp: At global scope:
wrappers.hpp:29:17: error: ‘size_t’ was not declared in this scope
 void* alMalloc( size_t size, int alignment ) {
                 ^~~~~~
wrappers.hpp:29:30: error: expected primary-expression before ‘int’
 void* alMalloc( size_t size, int alignment ) {
                              ^~~
wrappers.hpp:29:44: error: expression list treated as compound expression in initializer [-fpermissive]
 void* alMalloc( size_t size, int alignment ) {
                                            ^
imResampleMex.cpp: In function ‘void resampleCoef(int, int, int&, int*&, int*&, T*&, int*, int)’:
imResampleMex.cpp:22:39: error: ‘alMalloc’ cannot be used as a function
   wts = (T*)alMalloc(nMax*sizeof(T),16);
                                       ^
imResampleMex.cpp:23:43: error: ‘alMalloc’ cannot be used as a function
   yas = (int*)alMalloc(nMax*sizeof(int),16);
                                           ^
imResampleMex.cpp:24:43: error: ‘alMalloc’ cannot be used as a function
   ybs = (int*)alMalloc(nMax*sizeof(int),16);
                                           ^
imResampleMex.cpp: In function ‘void resample(T*, T*, int, int, int, int, int, T)’:
imResampleMex.cpp:49:43: error: ‘alMalloc’ cannot be used as a function
   T *C = (T*) alMalloc((ha+4)*sizeof(T),16); for(y=ha; y<ha+4; y++) C[y]=0;
                                           ^
warning: mkoctfile exited with failure status
warning: called from
    mkoctfile at line 171 column 5
    mex at line 29 column 18
    compile at line 17 column 2
Compilation finished.
octave:5>
...