windeployqt打包qt工程(qt+easypr+opencv车牌识别界面)运行exe文件直接闪退,没有报错。

windeployqt打包qt工程(qt+easypr+opencv车牌识别界面)运行exe文件直接闪退,没有报错。

1、问题
使用qt结合开源项目easypr和opencv写一个识别车牌的系统。代码写完后在自己的电脑能运行程序识别车牌,后续想要打包成一个工程让别人的电脑脱离环境也能运行,于是使用windeployqt命令打包,但打包后先是提示缺少各种opencv的dll文件,随后在打包文件里加上缺少的dll文件,但放到另一台电脑运行exe文件后又出问题,选择图片进行识别时不报错直接闪退。而在自己的电脑能够正确识别出车牌号
在这里插入图片描述

2、原因
猜想一定是打包后的问题还是缺少一些东西,查看源码发现识别程序里面以绝对路径调用了easypr的一些文件(如下图:include/easypr目录下的config.h文件使用了svm_hist.xml、svm_lbp.xml、svm_hist.xml、ann.xml等文件),于是现在自己的电脑尝试将调用的文件删去一个,果然,这下打包后的文件在自己的电脑也出现同样的情况。所以本菜鸡就是因为使用了绝对路径调用文件,而windeployqt打包工程时不能把这些以绝对路径调用的打包过来
在这里插入图片描述
3、解决
将config.h文件中绝对路径改为相对路径(如上图),同时将svm_hist.xml、svm_lbp.xml、svm_hist.xml、ann.xml等文件放到exe文件同一目录下,重新编译运行一遍程序后打包,拷到另一台电脑后程序运行成功,顺利识别车牌!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值