Как связать 64-битный файл MATLAB mex с библиотеками OpenCV - PullRequest
2 голосов
/ 11 апреля 2011

Обычно в MATLAB я могу скомпилировать mex-файл, который использует функции OpenCV, используя:

mex -O "mxFunc.cpp" -I"C:\OpenCV2.1\include/opencv" -L"C:\OpenCV2.1\lib" -lcv210 -lcvaux210 -lcxcore210 -lhighgui210

Однако, переключившись на 64-битную версию MATLAB, я теперь получаю неразрешенные символы, например,

mxFunc.obj : error LNK2019: unresolved external symbol cvReleaseImage referenced in function mexFunction

Как это исправить?

Система: Windows 7 64-битная;MSVC 2005;MATLAB R2010b 64-битная;OpenCV 2.1.0.

1 Ответ

3 голосов
/ 11 апреля 2011

В общем случае: вам нужно перекомпилировать используемые библиотеки в 64-битную версию.

Насколько я знаю, этого недостаточно. Если вы используете STL (а OpenCV использует много), вам нужно использовать ту же версию CRT, которую использует Matlab. Так что вам нужно использовать ту же версию MSVC, что и ребята из Mathworks ...

Вы можете проверить зависимость libmex.dll, чтобы выяснить, какой CRT необходим. После этого вам нужно установить соответствующий Visual C ++ (обычно достаточно бесплатной версии).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...