时间:2019年7月22日09:34:38
这个怎么说呢,你用qt编译的程序使用release进行编译后,点击生成的.exe 还是会告诉你 缺少很多.dll文件,网上有的就是说,差啥你就去找啥,然后就可以运行了,我这里就是用qt安装后自带的一个批处理软件windeployqt.exe.这个是qt安装自带的
具体方法:
你将你编译的release版本的.exe文件重新拷贝在一个文件夹中,然后运行这个windeployqt.exe就行了,他会自己给你把必要的库找到。
window+r,输入cmd,进入到命令行窗口,这里就要注意啦,使用windeployqt.exe去找,你直接输入这个会报错,是应为这个路径下没有这个程序,所以我们有两种方法去运行它,注意这里很讲究,
这个windeployqt.exe是在qt的这个位置,所以在终端指定位置进行运行,但是这样windeployqt.exe给你找的dll文件不知道为啥,双击你的.exe程序,还是报错,而且还提示有个毛用找到,看图:
自己指定windeployqt.exe 和自己编译的.exe程序路径
给你找的文件如下:
按理说,我相应的库都找到了,双击运行应该就能行了呀 ,结果如下:
好吧,你说还差一个,那我就给你手动找到吧,我就跑到Qt的安装路径中,去搜索这个.dll吧
现在需要的.dll和库都找到了呀,为啥还是不行???还提示报错0x0000007b (大哭)
过了很一会儿,我又看了下网上的资料,说编译器不同???我回来看看我的,发现没有错呀
突然灵关一现。试试进到windeployqt.exe的路径下去运行,行不行?(有点绝望了,网上也有人和我一样的报错,都是瞎扯扯,)
重新运行命令行cmd,然后指定编译生成的.exe路径,重新让windeployqt.exe给我找,不是通过window+r,而是通过这样:
点击运行后,他直接就是在这个目录下了:使用dir命令可以查看该目录下有哪些文件,我们的windeployqt.exe是在bin下的,所以还要切换一下,输入命令cd bin 就可以切换进去了
还是把你的.exe文件里面清空,只保留你的.exe文件。然后在命令行指定你的.exe的位置所在:
然后在看找到的各种库和.dll文件:
再试试双击能不能运行?
这下可以运行了,那再用Enigma Virtual Box.exe给打个包吧,下载地址:https://enigmaprotector.com/en/downloads.html有免费的,下载安装吧
自此,差不多描述完了,问题也解决了,这里我在思考的问题,这个问题也很奇怪,按理说,你指定windeployqt.exe找和后面的那种方式,找到的东西是一样的呀,可是结果为啥不一样????如果有知道的可以在下面留言哟(嘿嘿)