【error LNK1104】【无法打开文件opencv_core345d.lib 解决思路】

问题描述:
本人使用的是visual studio 2017+openCV 3,在做计算机视觉研究的时候,跑的论文代码是从别的大佬那边下载到的,也算是比较早之前的代码,版本用的是openCV 2.4。因此在运行代码的时候,首先报错的就是无法打开文件opencv_core345d.lib。(我已经给项目配置好了openCV的包含目录和库目录和附加依赖项)
代码中库引用参考下图:
【error LNK1104】【无法打开文件opencv_core345d.lib 解决思路】_第1张图片
问题在于openCV 2.x版本中,库目录是由多个库文件组成的,比如opencv_core245d.lib、opencv_imgproc245d.lib、opencv_highgui245d.lib等。所以在写代码的时候,需要将这些库文件一个个单独引入。但是在openCV 3.x中,这些库文件统一被整合进了opencv_worldxxxd.lib文件中。所以只有一个world的库。

解决方法就是只需要在代码中引入opencv_worldxxxd.lib这个文件就可以了。记得把旧版本的库文件引用注释掉。
如下图:
【error LNK1104】【无法打开文件opencv_core345d.lib 解决思路】_第2张图片
原来需要分别访问core、highgui等库文件中的函数,现在在world库文件中都可以直接访问到,因此代码上也不需要其他的修改操作。
emmm比喻的话呢,就相当于一盘盘不同的菜,变成了一锅大杂烩吧(\饿)

这里额外列举一下网上同类问题的不同解决方法:
1.有的人是同一个大版本的openCV,比如都是openCV 2.x这个版本的,但也报了这样的错,那就是在配置附加依赖项的时候,没注意版本号写错了(比如opencv_core249d.lib写成opencv_core245d.lib这样的错误),仔细检查一下配置路径和文件名就是了。
2.有的人是项目中,项目是有依赖关系的,子项目的一些文件是继承自父项目的,要跑子项目,那就先去检查下父项目都链接了些什么库,核对一下和自己用的openCV版本有没有出入。

【注意】编译有两种:Debug和Release,分别对应opencv_worldxxxd.lib和opencv_worldxxx.lib(后缀有无d来区分),对旧版本代码修改记得都修改清楚。

你可能感兴趣的:(C++,openCV)