使用windeployqt + enigma打包qt程序

本文参阅了https://blog.csdn.net/yhjahjj1314/article/details/107081868

在软件开发过程中,经常遇到自己的exe要依赖其他dll的情况。特别是在依赖的库很多的时候,往往出现丢三落四的情况。enigma将所有的dll和exe文件打包成一个,简化了布置流程。下面举个例子。

1 利用qt开发一个简单的程序。Qt版本5.7.0,编译器采用MSVC2013,64bit

2 采用release模式编译

产生的文件名叫engma.exe

 3 将编译产生的exe文件单独放置到一个文件夹内.文件夹起名exe

 4 启动qt自带的命令行(在开始菜单里)

5 利用cd 命令进入exe文件夹,输入命令windeployqt engma.exe

6 经过一段时间的处理,windeployqt命令将把engma.exe依赖的所有qt库拷贝到exe文件夹内

7 但是与qt无关的库仍然没有拷贝到exe。为了将所有的依赖库都找到,可以采用depends软件,或者微软提供的procexp(64).exe程序。这里我使用后者。启动你的engma.exe,然后启动procexp64.exe(假如是32位程序,就启动procexp.exe)。

在procexp的列表里找到engma,点击,窗口下部将出现一系列受依赖的dll,以及其所在的路径。

 事实上,虽然列表中dll很多,但是真正被依赖的只有msvp120.dll msvcr120.dll msvcp_win.dll msvcrt.dll四个。手动将它们从原位置拷贝到exe文件夹。

8 启动enigma,点击browse按钮,将engma.exe选中

 选中后,output file栏会给打包结果自动命名。当然,你可以手动改名。

9 点击File Options按钮,在弹出的对话框里面勾选compress files

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

 在弹出的对话框里选中所有的依赖dll

11 还有一些dll,是位于platforms文件夹内的。为了把这些dll也加入,要再次点击Add按钮,选择New Folder

 12 新建文件夹platforms

13 然后再次选择"Add Files",把platforms中的文件添加到项目里。

 14 点击process按钮,开始打包

 打包完成后,在exe文件夹内将出现打包结果.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值