要使VS编译生成的exe文件能脱离我们的OpenCV-VS开发环境单独运行,关键是找到其运行所需要的依赖DLL文件。
怎么知道其运行时需要哪些依赖DLL文件?
使用工具“Dependencies”即可查看,这个工具的百度网盘下载链接:
链接:
https://pan.baidu.com/s/15t3QKhvQf5SXEFA5X-f7rQ
提取码:f591
这个工具的GitHub地址:
https://github.com/lucasg/Dependencies
下载解压后找到 DependenciesGui.exe 打开软件。
接着打开自己需要分析的exe文件。
打开之后便可看到该exe文件运行时所需要的依赖DLL文件了,如下图所示:
上面截图中画红线的便是其运行时需要的依赖DLL文件。并且该软件还为我们指明了这些依赖DLL文件的路径,我们根据路径依次复制到exe文件所在的文件中。再把该exe所在的文件夹复制到没有安装OpenCV-VS开发环境中的系统中,即可正常运行由VS生成的exe文件了。
在另一台没有配置OpenCV-VS开发环境的电脑上,没有这些依赖DLL文件时的情况如下图所示:
在另一台没有配置OpenCV-VS开发环境的电脑上,有这些依赖DLL文件时的情况如下图所示:
我把上面这个可独立运行的exe所在文件夹及相关文件打包,提供下载地址给大家,大家可以下载下来试一下,百度网盘下载链接:
https://pan.baidu.com/s/13eVLj17OA-VMiBhnZAPX2Q
提取码:7l49
Tips:
①上面的MSVCR110D和MSVCP110D是微软Visual Studio的重要的dll文件,不仅在系统文件夹下“C:\Windows\SysWOW64”有,在VS的安装文件夹下也有,直接搜索VS的文件夹即可找到,如下面的截图所示。博主在这里建议大家使用VS安装文件夹中的这些DLL文件,以达到最大兼容性。
②exe文件执行时调用依赖文件首先是看其所在的文件夹下有没有相应的DLL文件,然后再按照DLL文件所在的路径去找寻,所以我们把DLL文件复制到其所在文件夹下后exe文件可正常运行。