2

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

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

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

我遇到了这 4 个关于setSVMDetector@HOGDescriptor. 我到处寻找解决方案,但找不到。没有人真正在外部程序中使用 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

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

4

3 回答 3

2

错误是由于未在调试或发布模式下添加特定库。根据您的目标机器使用 32 位或 64 库在发布模式下添加相应的 opencv 库 -

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

或者如果你想在调试模式下运行程序,那么使用 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
于 2013-02-10T03:41:35.847 回答
1

添加库文件“opencv_objdetect248.lib; opencv_objdetect248d.lib;” 在项目roperties-->链接器-->输入。

于 2014-04-29T00:44:07.340 回答
0

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

于 2014-04-04T06:26:02.017 回答