Qt程序打包发布

一. 将要安装的文件放在一个目录FileToInstall

1. 编译release版本,获得program.exe.

2. 将exe放到一个单独的目录,运行windeployqt program.exe,然后会生成Qt相关的dll

这里要注意windeployqt的版本要和Qt版本一致,位数也要一样(64位对应64位),不过有的版本的windeployqt生成的dll与 program.exe是不一致的,这时候只能从Qt目录里拷贝到exe目录

3. 添加exe依赖的C/C++运行时等dll,这一步很关键,因为经常会遇到exe少了某些dll而不能正常运行的

查看exe依赖的dll 方法:

方法1:用dependency walker,这个工具就是比较卡,加载很慢。加载后再折叠一下就能看到exe直接依赖的dll

方法2:用VS自带的本地命令提示符:dumpbin /imports program.exe

方法3:用ProcessExplorer,这个工具好像只能看运行的进程加载的dll,所以如果程序都不能跑起来,就不能用这种方法了

一般有:

msvc可能依赖的dll:

  • msvcp140.dll
  • vcruntime140.dll
  • ucrtbase.dll
  • vcruntime140_1d.dll
  • concrt140d.dll

mingw依赖的dll:

  • libgcc_s_dw2-1.dll
  • libstdc++-6.dll
  • libwinpthread-1.dll

当然具体的电脑环境可能还需要添加更多的dll。

4. 添加多线程调试需要的运行库:

api-ms-win-core-file-l1-2-0.dll
API-MS-Win-core-file-l2-1-0.dll
api-ms-win-core-localization-l1-2-0.dll
api-ms-win-core-processthreads-l1-1-1.dll
api-ms-win-core-synch-l1-2-0.dll 
api-ms-win-core-timezone-l1-1-0.dll
api-ms-win-crt-convert-l1-1-0.dll 
api-ms-win-crt-environment-l1-1-0.dll
api-ms-win-crt-filesystem-l1-1-0.dll 
api-ms-win-crt-heap-l1-1-0.dll 
api-ms-win-crt-locale-l1-1-0.dll 
api-ms-win-crt-math-l1-1-0.dll 
api-ms-win-crt-multibyte-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll 
api-ms-win-crt-stdio-l1-1-0.dll 
api-ms-win-crt-string-l1-1-0.dll 
api-ms-win-crt-time-l1-1-0.dll 
api-ms-win-crt-utility-l1-1-0.dll

步骤4的dll有的电脑环境又不需要,目前还没测试过什么电脑需要额外添加这些dll,但是用dependency walker看,的确是依赖这些dll

5. 添加.qss,.qm,资源文件,配置文件等exe需要的文件

二.编写nsi脚本,使用NSIS打包

1.编写nsi脚本

cmd:makensis.exe pack.nsi

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值