【发布时间】:2014-01-02 11:11:57
【问题描述】:
我正在使用 MATLAB R2013a x64 和 Win7 x64。我将 OpenCV 2.4.7.2 安装到路径 (C:\opencv)。以前round 的编译错误已解决,但现在出现链接错误。
MEX 命令输出:
>> mex -LC:\opencv\build\x64\vc11\lib -IC:\opencv\build\include\opencv -lcv -lcxcore me_HaarDetectOpenCV.cpp
Warning: MEX could not find the library "cv" specified with -l option.
MEX looked for a file with one of the names:
cv.lib
libcv.lib
MEX looked for the library in the following directories:
D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\amd64
D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\ATLMFC\LIB\amd64
C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x64
D:\Program Files\MATLAB\R2013a\extern\lib\win64
D:\Program Files\MATLAB\R2013a\extern\lib\win64\microsoft
C:\opencv\build\x64\vc11\lib
Warning: MEX could not find the library "cxcore" specified with -l option.
MEX looked for a file with one of the names:
cxcore.lib
libcxcore.lib
MEX looked for the library in the following directories:
D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB\amd64
D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\ATLMFC\LIB\amd64
C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x64
D:\Program Files\MATLAB\R2013a\extern\lib\win64
D:\Program Files\MATLAB\R2013a\extern\lib\win64\microsoft
C:\opencv\build\x64\vc11\lib
Creating library C:\Users\AsUs\AppData\Local\Temp\mex_47j5SQ\templib.x and object C:\Users\AsUs\AppData\Local\Temp\mex_47j5SQ\templib.exp
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvCreateImage referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvReleaseImage referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvCreateMemStorage referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvReleaseMemStorage referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvGetSeqElem referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvLoad referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvEqualizeHist referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvReleaseHaarClassifierCascade referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvHaarDetectObjects referenced in function mexFunction
me_HaarDetectOpenCV.mexw64 : fatal error LNK1120: 9 unresolved externals
D:\PROGRA~2\MATLAB\R2013A\BIN\MEX.PL: Error: Link of 'me_HaarDetectOpenCV.mexw64' failed.
Error using mex (line 206)
Unable to complete successfully.
>>
如何修复错误并编译(创建 MEX 文件me_HaarDetectOpenCV.mexw64)?
我正在编辑 me_HaarDetectOpenCV.Cpp 并修复错误。
#include "D:\Program Files\MATLAB\R2013a\extern\include\mex.h"
#include "C:\opencv\build\include\opencv\cv.h"
#include "C:\opencv\build\include\opencv\highgui.h"
#include "C:\opencv\build\include\opencv\cxcore.h"
MEX 命令输出:
>> mex me_HaarDetectOpenCV.cpp
Creating library C:\Users\AsUs\AppData\Local\Temp\mex_7BQNq1\templib.x and object C:\Users\AsUs\AppData\Local\Temp\mex_7BQNq1\templib.exp
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvReleaseMemStorage referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvReleaseHaarClassifierCascade referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvReleaseImage referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvGetSeqElem referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvHaarDetectObjects referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvEqualizeHist referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvCreateMemStorage referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvCreateImage referenced in function mexFunction
me_HaarDetectOpenCV.obj : error LNK2019: unresolved external symbol cvLoad referenced in function mexFunction
me_HaarDetectOpenCV.mexw64 : fatal error LNK1120: 9 unresolved externals
D:\PROGRA~2\MATLAB\R2013A\BIN\MEX.PL: Error: Link of 'me_HaarDetectOpenCV.mexw64' failed.
Error using mex (line 206)
Unable to complete successfully.
【问题讨论】:
-
请将粘贴板上的任何内容复制到问题中 - 这意味着未来的读者不会依赖可能会损坏的链接。