错误 LNK2019:未解析的外部符号_打开 CV 程序

error LNK2019: unresolved external symbol _ Open CV program

我正在学习开放式 CV,同样我尝试了一些程序。 我指的是这个link。 http://docs.opencv.org/modules/contrib/doc/facerec/tutorial/facerec_gender_classification.html

我正在使用 visual studio 10 到 运行 一样,我认为我在某个地方搞砸了一些配置。 我在另外几个程序中遇到了同样的问题(来自同一来源),

我得到的错误如下:-

1>main.obj : error LNK2019: unresolved external symbol "int __cdecl cv::waitKey(int)" (?waitKey@cv@@YAHH@Z) referenced in function __catch$_main[=10=]

1>main.obj : error LNK2019: unresolved external symbol "class cv::Mat __cdecl cv::subspaceReconstruct(class cv::_InputArray const &,class cv::_InputArray const &,class cv::_InputArray const &)" (?subspaceReconstruct@cv@@YA?AVMat@1@ABV_InputArray@1@00@Z) referenced in function __catch$_main[=10=]

.....(更多此类未解决的外部符号错误)

1>main.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall cv::_InputArray::empty(void)const " (?empty@_InputArray@cv@@UBE_NXZ)

1>c:\users\isenses\documents\visual studio 2010\Projects\gender_classification\Debug\gender_classification.exe : fatal error LNK1120: 37 unresolved externals

1>

1>Build FAILED.

1>Time Elapsed 00:00:00.36

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我的项目属性如下:-

属性->配置属性->调试->命令参数->C:\Users\isenses\Documents\Visual Studio 2010\Projects\gender_classification\csv.txt

属性->配置属性->VC++目录->包含目录->(添加 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib &
C:\openCV_2.4\opencv\build\x86\vc10\lib)

C/C++->general->additional include directories(添加了openCV的include路径即:- C:\openCV_2.4\opencv\build

链接器->一般--- 启用增量 linking=no

附加库目录=C:\Program Files %28x86%29\Microsoft Visual Studio 10.0\VC\lib

C:\openCV_2.4\opencv\build\x86\vc10

linker->System---SubSystem= /SUBSYSTEM:CONSOLE

链接器->输入--- 额外的依赖= wsock32.lib opencv_contrib2411d.lib

opencv_calib3d2411d.lib

opencv_ml2411d.lib

opencv_objdetect2411d.lib

谢谢。

感谢@miki,我能够成功构建文件。 我的问题的解决方案是:-

  1. 在属性->链接器->输入中添加适当的附加依赖项。
  2. 在 windows 环境变量中添加库路径。
  3. 我没有使用正确的附加依赖项,如@miki 所指出的和他引用的 "well you also have to link opencv_coreXXX,opencv_highguiXXX, opencv_imgprocXXX etc... (with trailing "d" 如果在调试中)在你的链接器->输入---附加依赖项"

再次感谢

我想对此添加一个答案,因为我觉得 opencv 站点上的文档需要更新。我按照教程进行操作,但无法将库获取到 link。经过多次排列后,我决定查看 .lib 文件。我的问题很简单。 opencv教程中的lib文件不完整。具体来说,我的 lib 目录包含另外三个 lib 文件。我在 visual studio linker 中添加了三个额外的 lib 文件,外部符号问题就解决了。 我不确定为什么会这样,因为我只是想使用核心模块中包含的函数。无论如何,希望这会对某人有所帮助。

我正在使用 opencv 3 和 visual studio 2017.