首先描述一下我遇到的问题现象:
调用cv::VideoCapture inputVideo(“a.avi”); 读入视频,生成的exe放在我的电脑上跑就没问题,将exe与opencv的dll打包放到其他人电脑上跑,读取视频就失败,为什么呢?
一开始怀疑是环境变量的问题,最后找到是opencv_ffmpeg310.dll没有打包进去。
在编译的时候opencv找不到opencv_ffmpeg310.dll并不会报错,运行exe时也不会报找不到opencv_ffmpeg310.dll,直接就是视频打开失败。
从这个问题可以延伸想一想,dll要拷贝完整,需要比较整体的了解功能实现需要的依赖,可能后续其他库的使用也会遇到此类问题。