1

在 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引擎彼此不兼容;

你能建议我以前尝试过的方法吗?

太感谢了!

4

0 回答 0