2012-02-24 65 views
0

我們有一個名爲FaceTracker的項目,用cpp編寫,我們需要從另一個用matlab編寫的項目調用它。 我們成功地使用「mex」和「mexfunction」(用c編寫)從matlab中調用單個函數。 當我們試着撥打完整的項目,我們將以下源文件:從Matlab調用Cpp項目

#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:\用戶\ hodhod \文件\ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ stdafx.h中:15 C:\用戶\ hodhod \文件\ 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:\用戶\ hodhod \文檔\ 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:\用戶\ hodhod \文檔\ 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:\ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012!\ FindSymetryInFaces \ FaceTracker \ FaceTracker \ mexFile.cpp:2找不到包含文件「cv.h」

LCC預處理程序錯誤:C:\用戶\ hodhod \文檔\ 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-2 012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ Tracker.h:42 C:\ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ FaceTracker.h:5 C:\ Users \ hodhod \ Documents \ Jam3a \ PROJECT-2012 !! \ FindSymetryInFaces \ FaceTracker \ FaceTracker \ mexFile.cpp:2無法找到包含文件`> Blockquote

我該如何解決這些錯誤? 提前致謝。

+0

正確安裝OpenCV的? – tr9sh 2012-02-25 14:16:07

+0

@ tr9sh。 是的。我們成功地調試了一個「helloWorld」文件,並從matlab中編譯了一個「C」文件。 – 2012-02-25 17:21:13

回答

1

你將不得不指定所有所需的包含路徑使用-I選項MEX編譯功能,請參閱help mex.下面是一個例子:

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

然後她會有連接器的問題... – Oli 2012-02-24 22:18:44

+0

#Oli,那麼你建議什麼? – 2012-02-25 17:10:27