VS2015报错LNK2019 无法解析的外部符号 “public: void __thiscall XXX…”
VS2015报错LNK2019 无法解析的外部符号 “public: void __thiscall XXX…”
程序所在环境:VS2015+Opencv,LNK2019 无法解析的外部符号报错原因排查。
别人的代码怎么也跑不通的各类原因排查,始终报错有无法解析的外部符号,实在是太头疼了。以下几个问题是参考了网络上的几种解决方案,整理得出的,最终成功地解决了我的报错,希望能对大家有所帮助。
1.opencv版本是否配置正确?
我原本使用的opencv版本为2.4.9,后来研究代码时,发现部分函数无法成功载入。查阅资料后发现,代码所用的opencv版本为3.0.0,所以需要重新配置项目属性。大家在跑别人的代码时,也要注意配置是否相同。
在VS中配置项目属性:【详情可搜索“如何在VS XX下配置OpenCV xxx”,网上会有很全的教程】
项目、属性、VC++目录、包含目录:
项目、属性、VC++目录、库目录:
项目、属性、链接器、输入、附加依赖项:填写附加依赖库的名字.lib 空格或分号间隔多项
这一部分需要注意在debug情况下,添加的附加依赖项应该是最后一个字母有d的。
2.库文件是否成功加载?
虽然我们已经配置了相应的项目属性,但是仍然有可能存在无法成功载入库文件的情况。接下来我们从两个方面进行检查。
1.系统的环境变量是否正确配置?
此电脑、属性、高级系统设置、系统变量、path
2.若满足1仍无法解决,则尝试下述方法。
首先找到自己软件安装(解压)的路径openCV (安装(解压)目录\opencv\build\x64\vc12\bin)
把3个后缀是.dll 应用程序扩展复制到C:\Windows\System32中
注意:64位系统用户需要注意,32位的DLL文件放在【C:\Windows\SysWOW64】,64位的DLL文件放在“【C:\Windows\System32】
3.文件路径是否正确无误?
在读取图片时,若是输入的路径不正确,也可能导致上述报错。
检查存在文件路径的位置,并且尽可能保证路径中是符号/,检查是否有不该存在空格等符号。
以上就是我解决这一报错时用到的方法,希望也能对大家有所帮助。