Используя 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 engine не совместимо друг с другом;
Можете ли вы предложить мне способы, которые вы пробовали раньше?
Спасибо огромное!
Задача ещё не решена.
Других решений пока нет …