2012-02-09 53 views
0

我是学习openCV的新手,并试图重现在线示例“脸部识别”程序:http://www.cognotics.com/opencv/servo_2007_series/part_5/index.html。 不过,我得到一个“无法解析的外部符号”错误的几个功能:当使用cvEigenDecomposition和其他人时,无法解析的外部符号错误

cvEigenDecomposite 
cvCalcEigenObjects 
indNearestNeighbor(float *) // functions defined locally by the user 
loadTrainingData(struct CvMat *) // functions defined locally by the user 

的“解析外部符号”将显示,当我陷入困境的连接。奇怪的是,对于我在其他网站上迄今为止所做的其他示例,它工作得很好。我的推理是,前两个函数cvEigenDecompositecvCalcEigenObjects需要额外的.lib对象,我没有链接到另外两个函数依赖于前两个。所以我的问题是这些函数是否需要额外的.lib对象来链接? 这里是.LIB对象我目前链接到的列表:

opencv_core231d.lib 
opencv_highgui231d.lib 
opencv_imgproc231d.lib 
opencv_features2d231d.lib 
opencv_calib3d231d.lib 

谢谢!

编辑:

ERRORS:

1> main.obj:错误LNK2019:解析外部符号函数_cvEigenDecomposite引用 “空隙__cdecl学习(无效)”

(学习@@ YAXXZ?)

1> main.obj:错误LNK2019:在函数引用解析外部符号_cvCalcEigenObjects “空隙__cdecl doPCA(无效)”(doPCA @@ YAXXZ?)

1> main.obj:错误LNK2019:解析的外部符号“INT __cdecl findNearestNeighbor(float *)“(?findNearestNeighbor @@ YAHPAM @ Z)在函数”void __cdecl(void)“中引用

1> main.obj:error LNK2019:无法解析的外部符号”int __cdecl loadTrainingData (struct CvMat * *)“(?loadTrainingData @@ YAHPAPAUCvMat @@@ Z)在函数”void __cdecl(void)“中引用

1> C:\ Users \ Lyukshins \ Dropbox \编程\ OpenCV2 \人脸识别\调试\工作面Recognition.exe:致命错误LNK1120:4周解析的外部

依赖性:

C:\的OpenCV \建立\包括

C:\的OpenCV \建立\包括\ opencv2

C:\的OpenCV \筹建\包括\的OpenCV

包括的目录:

C:\的OpenCV \建立\ 86 \ VC10 \ LIB

C:\的OpenCV \建立\包括

+1

你能粘贴完整的链接器命令和错误吗? – hmjd 2012-02-09 15:40:50

回答

1

cvEigenDecompositecvCalcEigenObjects位于opencv_legacy231d.lib

正如你所说,其他2个功能是本地功能。所以它们必须在调用它们的函数之前在代码中声明。

+0

@ karlphillip-非常感谢! – GKED 2012-02-10 15:52:47