使用visual studio 2010和Matlab R2012a(32位)以及32位平台:
我想使用matlab引擎在c ++中调用matlab中的函数。 我在一个单独的解决方案中得到了matlab函数输出,它运行良好; 我在我的主项目中进行了相同的设置,例如设置额外的包含路径和其他库路径,还设置了链接器输入。 我也为操作系统设置了路径环境变量。 但它不起作用! 我的代码是:
double* P::FindingCameraPosition()
{
double Result[6];
Engine *ep;
if (!(ep = engOpen("")))
{
cout<<"Error in starting matlab engine!"<<endl;
}
double *cresult;
mxArray *mresult;
mresult = mxCreateDoubleMatrix(1,1,mxREAL);
engEvalString(ep , "z=Position()");
mresult = engGetVariable(ep,"z");
cresult = mxGetPr(mresult);
for(int i = 0; i < 6; i++)
{
Result[i] = cresult[i];
}
engClose(ep);
return Result;
}
我看到了这些错误:
error LNK2001: unresolved external symbol _engClose
error LNK2001: unresolved external symbol _engEvalString
error LNK2001: unresolved external symbol _engGetVariable
error LNK2001: unresolved external symbol _engOpen
error LNK2001: unresolved external symbol _mxCreateDoubleMatrix_730
error LNK2001: unresolved external symbol _mxGetPr
我读过this但它根本没有帮助我; 所有遇到这些错误的人都错过了向链接器输入添加库的步骤;但是我把它放了几次并检查了一下;
为什么它作为一个单独的项目工作而不能在另一个解决方案中工作?我很困惑! 我在我的项目中使用openGL32。所以我猜使用opengl和matlab引擎相互之间没有相容性;
你能告诉我你以前尝试过的方法吗?
非常感谢你!