error LNK2019: 无法解析的外部符号

错误描述
1>11_ObjectDetection.obj : error LNK2019: 无法解析的外部符号 “public: __cdecl cv::VideoCapture::VideoCapture(void)” (??0VideoCapture@cv@@QEAA@XZ),该符号在函数 main 中被引用
1>11_ObjectDetection.obj : error LNK2019: 无法解析的外部符号 “public: virtual __cdecl cv::VideoCapture::~VideoCapture(void)” (??1VideoCapture@cv@@UEAA@XZ),该符号在函数 main 中被引用
1>11_ObjectDetection.obj : error LNK2019: 无法解析的外部符号 “public: virtual bool __cdecl cv::VideoCapture::open(int)” (?open@VideoCapture@cv@@UEAA_NH@Z),该符号在函数 main 中被引用
1>11_ObjectDetection.obj : error LNK2019: 无法解析的外部符号 "public: virtual bool __cdecl cv::VideoCapture::isOpened(void)const " (?isOpened@VideoCapture@cv@@UEBA_NXZ),该符号在函数 main 中被引用
1>11_ObjectDetection.obj : error LNK2019: 无法解析的外部符号 “int __cdecl cv::waitKey(int)” (?waitKey@cv@@YAHH@Z),该符号在函数 main 中被引用
1>F:\DeskTop\x64\Debug\人脸识别.exe : fatal error LNK1120: 5 个无法解析的外部命令

问题分析
error LNK2019: 无法解析的外部符号
一般是源代码里用了第三方库,但工程没有添加相应的库目录

解决方法
依次选择:项目–>属性
error LNK2019: 无法解析的外部符号_第1张图片
然后,VC++目录–>库目录–>编辑
error LNK2019: 无法解析的外部符号_第2张图片
点击空白处,然后点击“…”,添加相应的路径即可
error LNK2019: 无法解析的外部符号_第3张图片
还没有完,然后点击链接器–>输入–>附加依赖项–>编辑,添加用到的库文件的名称
error LNK2019: 无法解析的外部符号_第4张图片
补充
对于怎么知道自己缺少什么头文件和库文件这个问题,不熟悉项目的新手很是头疼。有一些经验,虽然很笨,供大家参考吧。

  1. 双击错误信息,找到出错的地方,把出错的位置复制到百度搜索一下,寻找他的头文件和库,出错的地方可能是宏定义、函数或变量, 不要大段复制,只复制名称。
  2. 有时可能双击不会跳转到出错的地方,就直接在代码里寻找标红的地方,可能有好几个文件,都要找,然后再根据标红的部分搜索.h和.lib。
  3. 一般.h和.lib是成对的,有lib一般都会有相应的h,但.h头文件可以单独存在。

小结
用第三方库时,一般还会遇到 “无法打开包括文件: “opencv2/objdetect/objdetect.hpp”: No such file or directory "的错误
fatal error C1083: 无法打开包括文件: “opencv2/objdetect/objdetect.hpp”: No such file or directory

你可能感兴趣的:(趟过的坑,MFC)