在 32 位平台上使用 Visual Studio 2010 和 Matlab R2012a(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
我读了这个,它对我一点帮助都没有;遇到这些错误的所有其他人都错过了将库添加到链接器输入的步骤;但我设置并检查了几次;
为什么它作为一个单独的项目工作而不能在另一个解决方案中工作?我很困惑!我在我的项目中使用 openGL32。所以我想使用opengl和matlab引擎彼此不兼容;
你能建议我以前尝试过的方法吗?
太感谢了!