前言
前段时间有人问我平时都咋给exe封包的,说enigmavb封好的文件打不开。我虽然一直用,但之前的包都是前辈给我弄好的,也没有出过什么问题,直到给他解决问题,才了解到QT的封包好像要拷贝qt自带的dll文件,顺便也学习了下enigmavb。
一. 安装
- 免费软件,直接下载,https:///assets/files/enigmavb.exe,直接安装
- 切换语言(可选),重启软件后生效

二. VC程序打包
VC的老项目了,打包过程也相当简单,找到程序生成的Release文件夹。不能是Debug,打包Debug会出现配置文件找不到等错误,具体原因如下: 
-
添加选中的exe文件,封包的程序会默认跟主程序在同一级目录下  -
添加文件包,这里选的是整个Release文件夹  -
(可选)删除文件包里不需要的文件,比如说原exe程序,说明文档,原有的数据库文件等等。 这样的目的一是为了缩小打包出来的文件大小;二是为了当新使用打包程序后,用户数据库或者日志里,不会带有原有测试的数据库或者日志的内容。 -
点击文件选项,勾选压缩文件,可以进一步缩小打包后的文件体积  -
执行封包即可
三. 打包QT程序
打包QT程序的过程跟上面打包VC差不多,但是QT编译器提供了很多的控件轮子,打包的时候就需要自行带有一部分的配置dll和依赖文件。
-
新建一个文件夹,并把需要打包的exe所在的Release文件夹内容全部拷到其中。此时的exe是无法打开的,缺少若干dll,如下。  -
输入如下命令行:windeployqt 程序名 。这一步操作是将所需的库文件全都拷贝到exe程序的当前文件(如果出现报错找不到命令,则需要添加环境变量PATH中,找到qt的安装位置下的bin,如我的安装位置在C:\Qt\Qt5.6.0\5.6\mingw49_32\bin)  -
此时打开文件夹中的exe的文件,发现可以正常运行。之后,(可选)如果你的项目有默认的配置文件,可以全部放到这个文件夹下,这样的配置完成后,就可以把这个文件夹保存好,用于专门打包,相当于上面提到的Release文件夹。以后,如果对源程序有所修改,打包的时候,只需要将QT生成exe新文件替换旧的exe文件,然后打包这个文件夹即可。 -
打包,之后的打包过程跟打包VC的步骤一模一样,只不过将打包的Release文件夹换成了3.存好的box文件夹。
四. 总结
网上的打包方式和打包软件有好几种,比如还有用qt自带打包的,个人觉得enigmavb还算比较友好的,简单整理分享一下自己的使用经验。
|