Qt学习笔记之——生成exe可执行文件并打包生成安装软件

之前用MFC生成过安装文件,今天想尝试采用Qt生成的exe文件打包并生成安装软件。

开始我认为比较简单,但是尝试过程中遇到了很多问题。下面一一列出来

首先:我认为,要完成一个软件,应尽可能的使用Release版本文件,当然了,可以现在Debug版本下调试通过再进行测试 打包 生成。

原因是,Debug版本会编译生成很多中间结果。

举个例子,可以看到,用Qt Creator编译器运行生成的exe可执行文件时,如果用Debug模式生成的可执行文件会比较大。我用一个简单的程序测试Debug模式有417KB

而切换到Release模式下只有19KB,较大的文件就更不用说。

而且,更要命的是,生成的exe文件拷贝到其他电脑上时,并不能直接运行。还需要添加很多dll动态链接库文件。

可以看到在Qt中debug版本的dll会很大很大,比如




通过对比发现debug模式下的dll有时甚至有100+MB,所以在后面的打包发布时候,会造成安装软件很大,非常不便。

所以,一定得切换到release版本下运行,并打包发布!!!


2、生成一个exe可执行文件之后,把这个exe文件拷贝到其他电脑上面运行。

必然会要求我们添加很多dll比如上面列举出来的dll,这些dll都在Qt安装包bin文件夹下面。

其他的可能在Windows/System32里面

在不确定调用到哪些dll时,使用软件Dependency Walker查看具体应用情况。如下图所示:


这里就要求调用这几个DLL

其中QT5CORE.DLL等等前三个和最后两个都在Qt安装文件bin文件夹下。

而第四第五个文件在System32下

将exe文件和这几个文件拷贝到同一个文件夹下并拷贝到另外一台电脑上运行时还是会报错。报错内容是:

This application failed to start because it could not find or load the Qt platform plugin “windows” Reinstalling the application may fix this problem. balabalabala.....................

或者是:

等等。还有icudt51.dll  icuin51.dll  icuuc51.dll  libEGL.dll文件等等

开始在网上看到还要添加platforms中的qwindows.dll.结果添加了之后还是报错。(platforms文件夹也在Qt安装包中),最后发现,是需要新建一个文件夹名字为platforms。文件夹中的内容为qwindows.dll。至此,程序终于可以在另外一台电脑上运行了!

具体如下:



但是,实际的安装软件中exe文件图标都比较好看

其实,Qt中可以在编译的时候得到!

具体操作如下:

在Qt Creator的帮助索引中查找Setting the Application Icon关键字,这里列出了在Windows上设置应用程序图标的方法,主要的步骤如下:

(1) 首先准备一个.ico图标文件(假定为musicmaker.ico),并将其复制到工程目录(.pro文件所在的目录)
    (2) 然后在QT Creator选择文件菜单中的新建文件或项目,在弹出的新建对话框中选概要,文本文件,名称填写为.rc文件(如pynxl.rc),在文件中写入该行:
          IDI_ICON1               ICON     DISCARDABLE     "musicmaker.ico"
    (3) 编辑项目文件,即.pro文件,在最后面添加下面一行代码:
          RC_FILE = musicmaker.rc
    (4) 重新编译程序,可以看到窗口的左上角的图标已经更换了,然后查看一下release文件夹中的文件,可以看到现在的exe文件也更换了新的图标。

得到的结果如下:


关于更多DLL知识可以看这里这里

最后就是打包了。

打包使用NSIS+NSIS Edit

下面是转载,不过本人已亲测好用!点击这里

准备文件
      以下是我即将打包的所有文件,安装包目录结构(包括:可执行程序、 插件库、运行时库、授权文件、卸载程序图标等等!)如下图所示:
Qt之打包发布(NSIS详解)
1、利用向导制作安装包:
Qt之打包发布(NSIS详解)

2、填写应用程序基本信息

Qt之打包发布(NSIS详解)

3、指定安装程序所用选项
       注意:这里选择语言为SimpChinese
Qt之打包发布(NSIS详解)

4、设置应用程序安装目录与授权文件

Qt之打包发布(NSIS详解)

5、指定应用程序文件

Qt之打包发布(NSIS详解)

6、指定创建应用程序图标

Qt之打包发布(NSIS详解)

7、选择安装程序完成后运行的动作

Qt之打包发布(NSIS详解)

8、指定接触安装程序属性

Qt之打包发布(NSIS详解)

9、进行脚本编译、保存

Qt之打包发布(NSIS详解)

10、等待编译完成,即可运行打包后的安装包
Qt之打包发布(NSIS详解)

      大功告成之后,即可进行安装!

(1)安装程序

Qt之打包发布(NSIS详解)

(2)此处显示授权文件中的内容

Qt之打包发布(NSIS详解)

(3)选择安装目录

Qt之打包发布(NSIS详解)

(4)运行程序,并显示“自述文件”

Qt之打包发布(NSIS详解)

(5)运行结果

Qt之打包发布(NSIS详解)

      关于Qt的打包工具了解一些,个人感觉NSIS用起来比较顺手,脚本修改起来也方便,所以就推崇一下

到此,所有关于Qt的移植和安装软件结束,may help~~~2014.07.21

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值