一.使用单文件封包工具

单文件封包工具,顾名思义就是将可执行文件及其相关依赖打包成单个可执行文件的工具。

这里推荐两个单文件封包工具:Enigma Virtual Box和BoxedApp Packer,都是免费的,度娘有下载。

这两个工具操作方法类似,这里以Enigma Virtual Box为例,打包一个我写的一个Qt程序。

Qt程序的目录如下图所示,包括可执行文件及其依赖库。

Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

打开Enigma Virtual Box,浏览封包的主程序,也就是上图中的DXManager.exe,如下图所示。

Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

然后点击“打开”按钮,此时封包程序另存中会自动显示一个默认的路径,如下图中红框所示。这个路径就是封包完成后的单文件存储的路径。当然也可以不使用默认的路径,自己选择其他的路径,我这里使用默认路径。

Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

点击右下角的“文件选项”按钮,打开“文件选项”窗口,并勾选其中的“压缩文件”,如下图中红框所示。压缩后的单文件会小得多,所以建议勾选。

Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

点击左下角的“增加”按钮,开始增加文件,如下图所示。

Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

需要注意的是这里只能增加文件,不能增加文件夹,如下图所示。

Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

选中要增加的文件,点击“打开”按钮,会弹出“选择文件夹”串口,这里默认即可,如下图所示。Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

此时的效果如下图所示。

Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

但是Qt程序目录中platforms文件夹里的dll还未添加,还是点击左下角的“增加”按钮,开始增加文件夹,如下图所示。

Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

将文件夹命名为platforms,如下图所示。

Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

还是点击左下角的“增加”按钮,往文件夹中添加文件,如下图所示。

Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

这样所有文件都添加完了,如下图所示。

Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

然后点击右下角的“执行封包”按钮,开始封包,如下图所示。

Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

封包完成后,Qt程序目录多了一个DXManager_boxed.exe,它就是我们需要的单文件。如下图所示。

Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)-LMLPHP

二.安装包的制作

使用单文件封包工具具有一定的局限性,当应用程序依赖第三方的.exe时,这种方法就不适用了。所以,当应用程序依赖第三方的.exe时,还是要将应用程序制作成安装包,在安装的过程中安装第三方的.exe。

安装包制作工具推荐火凤安装包制作工具(HofoSetup),后面不全了,被博客园吃掉了一部分。。。

http://blog.csdn.net/caoshangpa/article/details/53808627

05-08 15:08