OpenCV程序运行报错:缺失DLL文件(VS+OpenCV2.4环境)
OpenCV 2.4 运行时DLL缺失问题解决指南
嘿,太懂你这种配置OpenCV踩坑的烦躁了!之前用OpenCV3搞SURF确实麻烦,转OpenCV2.4本来想省心,结果碰到DLL连环缺失的问题,真的闹心。我帮你梳理几个大概率能解决的方向:
核心配置检查项
先对照下面的点,把你的VS配置过一遍:
- 环境变量必须生效:OpenCV2.4的预编译DLL都在
opencv/build/[x86/x64]/vcXX/bin目录下(vcXX对应你的VS版本,比如VS2010是vc10,VS2012是vc11),把这个路径添加到系统的Path环境变量里。划重点:添加完一定要重启VS,甚至重启电脑,不然环境变量不生效,VS还是找不到DLL。 - 位数必须严格匹配:如果你的VS项目是x86调试模式,就必须用OpenCV2.4的x86预编译库;要是项目是x64,就换x64版本的库。跨位数用库,100%会报DLL缺失。
- 附加依赖项别搞混Debug/Release:在VS的「链接器>输入>附加依赖项」里,Debug模式要加带
d后缀的lib(比如opencv_core2413d.lib,版本号看你下载的OpenCV2.4具体版本),Release模式就用不带d的(比如opencv_core2413.lib)。要是Debug模式加了Release的lib,也会出问题。
终极兜底方案
如果上面的配置都没问题还是报错,试试这个:
直接把你程序用到的DLL(比如和特征匹配相关的opencv_features2d2413.dll、opencv_highgui2413.dll、opencv_core2413.dll这些),复制到你的VS项目生成的exe所在文件夹里——一般是项目目录下的Debug或Release文件夹。这样程序运行时直接从本地找DLL,就不会找不到了。
另外,也可以检查下你下载的预编译库是不是完整的,有时候压缩包损坏会导致DLL缺失,重新下载对应版本的OpenCV2.4预编译包再试试。
内容的提问来源于stack exchange,提问作者Danny Ibrahim




