Вызов проекта Cpp из Matlab - PullRequest
0 голосов
/ 25 февраля 2012

У нас есть проект под названием FaceTracker, написанный на cpp, и нам нужно вызвать его из другого проекта, написанного на matlab. нам удалось вызвать одну функцию из matlab, используя «mex» и «mexfunction» (что написано в c). Когда мы попытались вызвать полный проект, мы добавили следующий исходный файл:

#include "mex.h"
#include "FaceTracker.h"

void mexFunction(int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
... // code
/* Call the "main" C++ subroutine. */
FaceTracker( buflen, input_buf);
}

и попытался скомпилировать его в matlab, набрав: "mex mexFile.cpp" Но мы получили следующие ошибки:

`Ошибка препроцессора lcc: C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ stdafx.h: 13 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ FaceTracker.h: 4 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ mexFile.cpp: 2 Не удалось найти включаемый файл

Ошибка препроцессора lcc: C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ stdafx.h: 14 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012! ! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ FaceTracker.h: 4 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ mexFile.cpp: 2 Не удалось найти включаемый файл " cv.h "

Ошибка препроцессора lcc: C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ stdafx.h: 15 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012! ! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ FaceTracker.h: 4 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ mexFile.cpp: 2 Не удалось найти включаемый файл " highgui.h "

Ошибка препроцессора lcc: C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ stdafx.h: 16 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012! ! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ FaceTracker.h: 4 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ mexFile.cpp: 2 Не удалось найти включаемый файл " cxcore.h "

Ошибка препроцессора lcc: C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ IO.h: 42 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012! ! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ PDM.h: 42 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ CLM.h: 42 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ Tracker.h: 42 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ FaceTracker.h: 5 C: \ Пользователи \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ mexFile.cpp: 2 Не удалось найти включаемый файл "cv.h"

Ошибка препроцессора lcc: C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ IO.h: 44 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012! ! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ PDM.h: 42 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ CLM.h: 42 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ Tracker.h: 42 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ FaceTracker.h: 5 C: \ Пользователи \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ mexFile.cpp: 2 Не удалось найти включаемый файл `> Blockquote

Как я могу исправить эти ошибки? Спасибо заранее.

1 Ответ

1 голос
/ 25 февраля 2012

Вам нужно будет указать все необходимые пути включения для функции компиляции mex, используя опцию -I, см. help mex. Вот пример:

 mex -v -g -IC:\Users\hodhod\Documents\Jam3a\PROJECT-2012!!\FindSymetryInFaces\FaceTracker\FaceTracker\SomeMissingIncludes mexFile.cpp
...