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 エンジンの使用には互換性がないと思います。
以前に試した方法を教えてください。
どうもありがとうございます!