Qt程序通过enigma virtual box工具封包,生成单独的*.exe文件

之前不知道还有封包工具这种好东西,傻傻的用静态编译,后来偶然发现还有这类实用的工具,再也不用费心去静态编译了,只需要每次发布的时候封包就好了。

step-0

首先,qt生成的exe文件生成之后若没有设置环境变量是不能直接运行的

Qt程序通过enigma virtual box工具封包,生成单独的*.exe文件_第1张图片

Qt程序通过enigma virtual box工具封包,生成单独的*.exe文件_第2张图片

step-1

后来,我知道了windeployqt这个打包命令,只需要用qt自带的命令行工具(开始菜单里qt目录下能找到那个黑框框),使用这个方法就能将依赖库打包到一起。

Qt程序通过enigma virtual box工具封包,生成单独的*.exe文件_第3张图片

Qt程序通过enigma virtual box工具封包,生成单独的*.exe文件_第4张图片

step-2

打包到一起虽然能直接运行了,但是带一大堆动态库太不方便了,于是就需要把他们合成为一个*.exe文件。之前我只知道用静态编译,现在感觉还是封包工具方便,至少不用换一个版本就要编译一下Qt源码。

我用的是enigma virtual box这个封包工具,操作比较简单,

官网也有免费版 http://enigmaprotector.com/en/downloads.html

下载之后直接安装,然后打开

Qt程序通过enigma virtual box工具封包,生成单独的*.exe文件_第5张图片

step-3

有了windeployqt打包的动态库,只需要三步就可以封包了

先点击浏览,选择目标*.exe程序

然后点击左下角增加,我是直接选的这个exe的文件夹,然后把exe从文件列表中移除

最后点击右下角执行封包,就ok了

Qt程序通过enigma virtual box工具封包,生成单独的*.exe文件_第6张图片

step-4

最后,直接点击生成的那个*.exe就可以运行了,qt唯一不爽的就是得用自己的库导致文件太大,如果可以像mfc或者c#那样调用本地的库就好了

Qt程序通过enigma virtual box工具封包,生成单独的*.exe文件_第7张图片

你可能感兴趣的:(Qt,略知一二)