我的脸部识别程序需要帮助。 我在构建程序时遇到了这些错误:
error LNK2019: unresolved external symbol "public: virtual void __thiscall cv::HOGDescriptor::setSVMDetector(class std::vector<float,class std::allocator<float> > const &)" (?setSVMDetector@HOGDescriptor@cv@@UAEXABV?$vector@MV?$allocator@M@std@@@std@@@Z) referenced in function "int __cdecl ppledetect(void)" (?ppledetect@@YAHXZ)
error LNK2001: unresolved external symbol "public: virtual void __thiscall cv::HOGDescriptor::write(class cv::FileStorage &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)const " (?write@HOGDescriptor@cv@@UBEXAAVFileStorage@2@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
error LNK1120: 11 unresolved externals
我遇到了11种这类错误。 3错误LNK2019,错误LNK2001错误8,错误LNK1120错误1。 为什么会这样?
答案 0 :(得分:3)
HOGDescriptor位于opencv_objdetect。
答案 1 :(得分:1)
这通常意味着您缺少链接器依赖项(lib文件)
搜索显示您需要在调试中添加的这些文件:
opencv_core220d.lib
opencv_highgui220d.lib
opencv_video220d.lib
opencv_ml220d.lib
opencv_legacy220d.lib
opencv_imgproc220d.lib
如果您使用的是Visual Studio,则可以访问:
项目属性 - &gt; 配置属性 - &gt; 链接器 - &gt; 一般
从那里,设置“附加库目录”。您可以在此处输入lib文件所在的根目录。例如:C:\program files\opencv22\lib\
然后您需要转到项目属性 - &gt; 配置属性 - &gt; 链接器 - &gt; 输入
在Additional Dependencies下,您需要在那里添加这些lib文件。
答案 2 :(得分:0)
错误意味着OpenCV未正确链接。请务必按照http://opencv.willowgarage.com/wiki/VisualC%2B%2B上的说明进行操作。
答案 3 :(得分:0)
我得到了同样的错误,我通过以前的答案解决了。
如果您正在使用Visual Studio:转到项目属性 - &gt;配置属性 - &gt;链接器 - &gt;输入 - &gt;其他依赖项并进行编辑。 你需要添加&#34; opencv_objdetect249d.lib&#34; (我使用的是opencv 2.4.9,但你的文件名可能不同,249可以更改。查看你的.. \ opencv \ build \ x64 \ vc10 \ lib目录并写下你的文件名:opencv_objdetect ??? d的.lib)