C++ 从Matlab调用Cpp项目
我们有一个叫做FaceTracker的项目,它是用cpp编写的,我们需要从另一个用matlab编写的项目调用它。 我们已经成功地使用“mex”和“mexfunction”(用c编写)从matlab调用了单个函数。 当我们尝试调用完整项目时,添加了以下源文件:C++ 从Matlab调用Cpp项目,c++,c,matlab,mex,C++,C,Matlab,Mex,我们有一个叫做FaceTracker的项目,它是用cpp编写的,我们需要从另一个用matlab编写的项目调用它。 我们已经成功地使用“mex”和“mexfunction”(用c编写)从matlab调用了单个函数。 当我们尝试调用完整项目时,添加了以下源文件: #include "mex.h" #include "FaceTracker.h" void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
#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);
}
并试图通过键入“mex mexFile.cpp”在matlab中编译它
但我们得到了以下错误:
`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:\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找不到包含文件“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\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\FindSymetryInterfaces\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:\Users\hodhod\Documents\Jam3a\PROJECT-2012\FindSymetryInterfaces\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\FindSymetryInterfaces\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”
如何修复这些错误?
提前感谢。您必须使用
-I
选项指定mex编译函数所需的所有包含路径,请参阅帮助mex。
以下是一个示例:
mex -v -g -IC:\Users\hodhod\Documents\Jam3a\PROJECT-2012!!\FindSymetryInFaces\FaceTracker\FaceTracker\SomeMissingIncludes mexFile.cpp
opencv安装是否正确?@tr9sh。对我们成功地调试了一个“helloWorld”文件,并从matlab编译了一个“C”文件?