使用cvEigenDecomposition和其他时未解决的外部符号错误

时间:2012-02-09 15:33:32

标签: c opencv

我是学习openCV的新手,并试图在这里重现一个在线示例“面部识别”程序:http://www.cognotics.com/opencv/servo_2007_series/part_5/index.html。 但是,对于一些函数,我得到了一个“未解决的外部符号”错误:

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

谢谢!

编辑:

错误:

1> main.obj:错误LNK2019:未解析的外部符号_cvEigenDecomposite在函数“void __cdecl learn(void)”中引用(?learn @@ YAXXZ)

1> main.obj:错误LNK2019:函数“void __cdecl doPCA(void)”中引用的未解析的外部符号_cvCalcEigenObjects(?doPCA @@ YAXXZ)

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

1> main.obj:错误LNK2019:未解析的外部符号“int __cdecl loadTrainingData(struct CvMat * *)”(?loadTrainingData @@ YAHPAPAUCvMat @@@ Z)在函数“void __cdecl recogn(void)”中引用(?认识@@ YAXXZ)

1> C:\ Users \ Lyukshins \ Dropbox \ Programming \ OpenCV2 \ Face Recognition \ Debug \ Face Recognition.exe:致命错误LNK1120:4个未解析的外部

依赖关系:

C:\的OpenCV \建立\包括

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

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

包括的目录:

C:\的OpenCV \建立\ 86 \ VC10 \ lib中

C:\的OpenCV \建立\包括

1 个答案:

答案 0 :(得分:1)

cvEigenDecompositecvCalcEigenObjects位于 opencv_legacy231d.lib

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