0

We Have a project called FaceTracker that is written in cpp, and we need to call it from another project written in matlab. we`ve succeeded to call a single function from matlab using "mex" and "mexfunction" (that is written in c). When we tried to call the full project, we added the following source file:

#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);
}

and tried to compile it in matlab by typing: "mex mexFile.cpp" But we got the following errors:

`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 Could not find include file

lcc preprocessor error: 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 Could not find include file "cv.h"

lcc preprocessor error: 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 Could not find include file "highgui.h"

lcc preprocessor error: 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 Could not find include file "cxcore.h"

lcc preprocessor error: 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:\Users\hodhod\Documents\Jam3a\PROJECT-2012!!\FindSymetryInFaces\FaceTracker\FaceTracker\mexFile.cpp:2 Could not find include file "cv.h"

lcc preprocessor error: 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:\Users\hodhod\Documents\Jam3a\PROJECT-2012!!\FindSymetryInFaces\FaceTracker\FaceTracker\mexFile.cpp:2 Could not find include file `> Blockquote

How can I fix those errors? Thank in advance.

2
  • Is opencv installed correctly? Commented Feb 25, 2012 at 14:16
  • @tr9sh. Yes. We Succeeded to debug a "helloWorld" file, and to compile a "C" file from matlab. Commented Feb 25, 2012 at 17:21

1 Answer 1

1

You are going to have to specify all of the required include paths to the mex compile function using the -I option, see help mex. Here's an example:

 mex -v -g -IC:\Users\hodhod\Documents\Jam3a\PROJECT-2012!!\FindSymetryInFaces\FaceTracker\FaceTracker\SomeMissingIncludes mexFile.cpp
Sign up to request clarification or add additional context in comments.

1 Comment

#Oli, So What do you Suggest?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.