试图将我的项目与外部opencv一起使用

时间:2012-08-12 13:55:46

标签: c++ opencv

我在C ++中将一些外部库附加到我的项目中。 这些库使用opencv2库。

我已经将opencv2包含文件添加到我的c / c ++属性中。我还添加了我用Google搜索并找到链接器输入列表的所有相关lib文件。 (我正在运行发布版本,但我也尝试了带有“d”扩展名的调试版本。)

  • opencv_core230.lib
  • opencv_highgui230.lib
  • opencv_objdetect230.lib
  • opencv_imgproc230.lib
  • opencv_ml230.lib
  • opencv_legacy230.lib
  • opencv_video230.lib

我遇到了关于setSVMDetector@HOGDescriptor的这4个恼人的链接问题。 我到处寻找解决方案,找不到一个。没有人真正在外部程序中使用setSVM功能。

以下是链接问题:

Error   14  error LNK2001: unresolved external symbol "public: virtual void __thiscall cv::HOGDescriptor::setSVMDetector(class cv::_InputArray const &)" (?setSVMDetector@HOGDescriptor@cv@@UAEXABV_InputArray@2@@Z)    C:\Users\idan\Documents\Visual Studio 2010\GraspTestingTool\GraspTestingTool\GraspTestingTool.obj   GraspTestingTool

Error   15  error LNK2001: unresolved external symbol "public: virtual void __thiscall cv::HOGDescriptor::setSVMDetector(class cv::_InputArray const &)" (?setSVMDetector@HOGDescriptor@cv@@UAEXABV_InputArray@2@@Z)    C:\Users\idan\Documents\Visual Studio 2010\GraspTestingTool\GraspTestingTool\htmlGenerator.obj  GraspTestingTool

Error   16  error LNK2001: unresolved external symbol "public: virtual void __thiscall cv::HOGDescriptor::setSVMDetector(class cv::_InputArray const &)" (?setSVMDetector@HOGDescriptor@cv@@UAEXABV_InputArray@2@@Z)    C:\Users\idan\Documents\Visual Studio 2010\GraspTestingTool\GraspTestingTool\sequenceTests.obj  GraspTestingTool

Error   17  error LNK2001: unresolved external symbol "public: virtual void __thiscall cv::HOGDescriptor::setSVMDetector(class cv::_InputArray const &)" (?setSVMDetector@HOGDescriptor@cv@@UAEXABV_InputArray@2@@Z)    C:\Users\idan\Documents\Visual Studio 2010\GraspTestingTool\GraspTestingTool\Utilities.obj  GraspTestingTool

有谁知道如何解决这个问题? 非常感谢!

3 个答案:

答案 0 :(得分:2)

错误是由于未在调试或释放模式下添加特定库。     使用32位或64库,具体取决于您的目标计算机     在发布模式下添加相应的opencv库 -

opencv_core242.lib opencv_highgui242.lib opencv_imgproc242.lib opencv_ml242.lib   
opencv_legacy242.lib opencv_video242.lib 

OR如果要在调试模式下运行程序,那么     使用opencv的调试库

opencv_core220d.lib
opencv_highgui220d.lib
opencv_video220d.lib
opencv_ml220d.lib
opencv_legacy220d.lib
opencv_imgproc220d.lib


opencv_objdetect242.lib

C:\opencv\build\x86\vc10\lib

答案 1 :(得分:1)

添加库文件“opencv_objdetect248.lib; opencv_objdetect248d.lib;”在Project roperties中 - > Linker - >输入。

答案 2 :(得分:0)

您需要添加opencv_objdetect库。如果你使用调试模式添加objdetect(version)d.lib,但是,如果你发布模式添加objdetect(version).lib