1

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

私はこれを読みましたが、まったく役に立ちませんでした。これらのエラーに直面した他のすべての人は、リンカー入力にライブラリを追加するステップを逃しました。しかし、私はそれを設定して数回チェックしました。

別のプロジェクトとして機能し、別のソリューションでは機能しないのはなぜですか? 私は混乱しました!プロジェクトでopenGL32を使用しています。したがって、opengl と matlab エンジンの使用には互換性がないと思います。

以前に試した方法を教えてください。

どうもありがとうございます!

4

0 に答える 0