如何生成能在没有安装opencv库及vs2015环境的电脑上运行的exe文件,移植到客户电脑上执行程序(其他win7/win10系统上),运行失败。
寻找各种解决办法,baidu找到两个办法:
- 使用静态链接的方法,这种生成的exe太大(需要编译静态库,链接)。
- 将对应需要的dll拷贝到exe的执行目录下,这种虽然文件多,但是易操作,选择。
我的环境windows10 + Visual Studio 2019 + opencv4.5.2,各种基本的配置省略。
- 打开项目配置页->c/c+±>代码生成->运行库,设置成多线程调试DLL(/MD)(release版的程序选择MD,这一步是为了添加程序运行需要的运行库)
- Ctrl+F5生成exe,然后把对应的dll库拷贝到exe的文件夹下面。将此文件夹作为一个整体发送给甲方。(具体需要拷贝哪些dll库可以使用visual studio的dependents查看,方法如下)qt程序使用qt自带的windeployqt.exe进行打包
使用dependents查看exe所需要的dll库:
3. 开始->所有程序->Microsoft Visual Studio 2019 ->Developer Command Prompt for VS 2019
4. cd到exe所在根目录下,输入dumpbin /dependents XXX.exe,就会有如图所示结果。
使用everything.exe查找上述依赖文件并复制到exe文件所在目录下。
我的不需要执行复制opencv_ffmpeg
(添加opencvdll库和其他dll库(SysWOW64文件夹),除此还需额外添加opencv_ffmpeg247.dll,不然总提示读取视频失败。下面的几个DLL文件在上面步骤一修改运行时库就已经添加了。)