解决关于VS+opencv的exe程序不能在其他电脑上运行的问题

观前提示(我使用的是VS2010+opencv2.4.1版本,在win7 64位环境下,而且我发送给别人的是Release版本,与Debug的区别自行百度,但需要注意的是两者所需要的dll文件和lib文件区别为:Debug版本往往在文件末尾加了一个d,而Release版本没有,在配置环境的时候需要注意)

首先,需要确定当我们做好一个程序并且编译完成后,想要将其在其他没有VS+opencv的环境的电脑上正常运行需要的是什么:
1.编译完成后的运行文件(即Release文件夹下的全部内容),其一般路径如下:
在这里插入图片描述
2.程序所包含的动态链接库(.dll文件),一般为opencv的dll文件以及自身电脑系统环境的dll,常见的opencv的dll文件为:opencv_core2410.dll,opencv_highgui2410.dll; 常见的系统环境dll文件为:mfc100.dll,mfc100u.dll;

具体需要哪些可以使用dependency walker程序搜索(注意,里面并不是缺失的所有dll文件都需要。),还可以先将上面的Release文件夹中的文件拷贝到目标电脑中,然后查看提示,根据提示所缺失的补足。
其中: opencv中的dll文件在(其中vc10根据版本自行调整):
在这里插入图片描述
系统环境文件在(其中第一个为32为编译环境下,第二个为64位编译环境下,请勿弄错):
32位系统
64位系统

一般的情况下就只需要上述文件就可以在指定环境下运行了,提示一下,对于写程序时添加的.h文件或者.lib文件,其并不需要添加进去,因为其在编译的时候就已经加入到你的可执行文件中了,具体原理请自行百度。

可能出现的问题:

1.Debug版本无论如何在其他电脑上都不能使用:作者也遇到了这个问题,所以才给别人的是Release版本,这个应该是不会出问题的,此时需要注意一下环境配置时,连接器的附加依赖项中的.lib文件请使用相应的没有d的版本。

2.可能由于程序中使用的是绝对路径,所以导致图片文件打开错误而出现问题,可以使用相对路径,并将指定文件加入到可执行文件夹的目录下一起打包过去。

3.相应的系统环境文件(mfc100u.dll)最好在写程序的电脑上复制过去,不要从网上下载,防止因为版本不一致出现错误。

若还遇到什么问题,可以在评论区留言,我能解答的话一定会回复的。

猜你喜欢

转载自blog.csdn.net/qq_41372644/article/details/121740301