如何将64位MATLAB mex文件链接到OpenCV库

如何将64位MATLAB mex文件链接到OpenCV库,matlab,opencv,64-bit,Matlab,Opencv,64 Bit,通常,在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

通常,在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
我怎样才能解决这个问题


系统:Windows7 64位;MSVC 2005;MATLAB R2010b 64位;OpenCV 2.1.0。

一般情况下:您需要以64位重新编译使用过的库

据我所知,这还不够。如果您使用STL(OpenCV使用了很多),那么您需要使用与Matlab相同的CRT版本。所以你需要使用和Mathworks一样的MSVC版本


您可以检查libmex.dll的依赖关系,以确定需要哪个CRT。之后,你需要安装适当的VisualC++(通常免费版本就足够了)。使用64位库工作的

。我必须使用CMAKE配置一个新的64位MSVC解决方案,将“生成器”命名为“VisualStudio82005Win64”。我不知道我使用的编译器是否与用于生成libmex.dll的编译器相同,但它仍然有效。@user664303:2010a/20010b的32位版本使用VS 2005。我想他们对64位使用相同的版本。你很幸运