Reputation: 559
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.
Upvotes: 0
Views: 562
Reputation: 4685
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
Upvotes: 1