2012-02-24 70 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