通常在 MATLAB 中,我可以使用以下方法编译使用 OpenCV 函数的 mex 文件:
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位;微软风险投资2005; MATLAB R2010b 64 位; OpenCV 2.1.0。
最佳答案
一般情况下:您需要将使用的库重新编译为64位。
据我所知,这还不够。如果您使用 STL(并且 OpenCV 使用很多),您需要使用与 Matlab 使用的相同的 CRT 版本。因此,您需要使用与 Mathworks 人员相同版本的 MSVC...
您可以检查 libmex.dll 的依赖关系来确定需要哪个 CRT。之后,您需要安装适当的 Visual C++(通常免费版本就足够了)。
关于matlab - 如何将 64 位 MATLAB mex 文件链接到 OpenCV 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5622894/