2012-02-24 4 views
0

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

#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 preprocessor error: 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 Не удалось найти файл include

LCC ошибки препроцессора: C: \ Users \ hodhod \ Documents \ Jam3a \ ПРОЕКТ-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ stdafx.h: 14 C: \ Users \ hodhod \ Documents \ Jam3a \ ПРОЕКТ-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ FaceTracker.h: 4 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ mexFile.cpp: 2 Не удалось найти файл include "cv .h»

LCC препроцессора ошибка: C: \ Users \ hodhod \ Documents \ Jam3a \ ПРОЕКТ-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 \ mexF ile.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 \ ПРОЕКТ-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: \ Users \ hodhod \ Documents \ Jam3a \ ПРОЕКТ-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ mexFile.cpp: 2 не удалось найти инклюднике "cv.h" ошибки препроцессора

LCC: C: \ Users \ hodhod \ Documents \ Jam3a \ ПРОЕКТ -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-2 012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ Tracker.h: 42 C: \ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ FaceTracker.h: 5 C: \ Users \ hodhod \ Документы \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ mexFile.cpp: 2 Не удалось найти файл include `> Blockquote

Как исправить эти ошибки? Благодарим заранее.

+0

правильно ли установлен OpenCV? – tr9sh

+0

@ tr9sh. Да. Нам удалось отладить файл «helloWorld» и скомпилировать файл «C» из matlab. –

ответ

1

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

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

а затем у нее будут проблемы с компоновщиком ... – Oli

+0

#Oli, Итак, что вы предлагаете? –