将exe和依赖文件(dll ico等)合并为一个exe发布

主要由三部分组成

  1. 用release方式编译工程
  2. 用windeployqt解决环境依赖问题
  3. 用winrar打包成单一exe文件

用release方式编译工程

创建工程之后,默认的编译方式是debug。这样编译出来的exe文件会比release方式编译出来的文件大很多,而且运行时会依赖更多的dll。
所以一般是先选择debug方式调测软件,通过测试之后选择release模式再编译一次。


将exe和依赖文件(dll ico等)合并为一个exe发布_第1张图片

编译得到的exe文件会存放在release文件夹下面。
![]W66MKTM.png](https://upload-images.jianshu.io/upload_images/9767009-bb90a71c7c446a7a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

cd到release文件夹下点击文件,报错缺少dll。
在文件夹下新增那些dll就可以再本机上正常运行了,但是在别人的电脑上就会报更多错误,各种缺少dll。

用windeployqt解决环境依赖问题

缺少dll的问题可以通过手动加dll解决,但是这样未免太过低效,而且必须到另一个人的电脑上运行一下才知道到底需要哪些dll。
所以Qt官方提供了一劳永逸的方法:windeployqt
ref
在release文件夹下,用Qt自带的命令行输入

windeployqt XXX.exe

就会把所有的dll同步过来。

用winrar打包文件

用以上方法就在所有windows平台运行了。但是每次拷贝都要考一大堆原文件有些不雅,所以可以用winrar把众多dll和exe打包为一个

  1. .ico格式图片制作
    link
  2. winrar 打包
    ref
    只需要设置
  • 压缩后的文件名称
  • 设置自压缩选项
  • 解压选项
  • 解压后运行
  • 选择图标

你可能感兴趣的:(将exe和依赖文件(dll ico等)合并为一个exe发布)