Qt学习笔记之——生成exe可执行文件并打包生成安装软件
2014-07-21 22:12
513 查看
之前用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
下面是转载,不过本人已亲测好用!点击这里。
准备文件
以下是我即将打包的所有文件,安装包目录结构(包括:可执行程序、插件库、运行时库、授权文件、卸载程序图标等等!)如下图所示:
1、利用向导制作安装包:
2、填写应用程序基本信息
3、指定安装程序所用选项
注意:这里选择语言为SimpChinese
4、设置应用程序安装目录与授权文件
5、指定应用程序文件
6、指定创建应用程序图标
7、选择安装程序完成后运行的动作
8、指定接触安装程序属性
9、进行脚本编译、保存
10、等待编译完成,即可运行打包后的安装包
大功告成之后,即可进行安装!
(1)安装程序
(2)此处显示授权文件中的内容
(3)选择安装目录
(4)运行程序,并显示“自述文件”
(5)运行结果
关于Qt的打包工具了解一些,个人感觉NSIS用起来比较顺手,脚本修改起来也方便,所以就推崇一下
到此,所有关于Qt的移植和安装软件结束,may help~~~2014.07.21
开始我认为比较简单,但是尝试过程中遇到了很多问题。下面一一列出来
首先:我认为,要完成一个软件,应尽可能的使用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
下面是转载,不过本人已亲测好用!点击这里。
准备文件
以下是我即将打包的所有文件,安装包目录结构(包括:可执行程序、插件库、运行时库、授权文件、卸载程序图标等等!)如下图所示:
1、利用向导制作安装包:
2、填写应用程序基本信息
3、指定安装程序所用选项
注意:这里选择语言为SimpChinese
4、设置应用程序安装目录与授权文件
5、指定应用程序文件
6、指定创建应用程序图标
7、选择安装程序完成后运行的动作
8、指定接触安装程序属性
9、进行脚本编译、保存
10、等待编译完成,即可运行打包后的安装包
大功告成之后,即可进行安装!
(1)安装程序
(2)此处显示授权文件中的内容
(3)选择安装目录
(4)运行程序,并显示“自述文件”
(5)运行结果
关于Qt的打包工具了解一些,个人感觉NSIS用起来比较顺手,脚本修改起来也方便,所以就推崇一下
到此,所有关于Qt的移植和安装软件结束,may help~~~2014.07.21
相关文章推荐
- JAVA项目的打包及生成.exe文件或者打包安装软件
- VS2010 打包生成exe文件后 执行安装文件出现 TODO:<文件说明>已停止工作并已关闭
- Java程序导出成.jar文件、生成.exe可执行文件及打包成可执行安装程序(可在无Java环境的计算机上运行)--以个人所得税计算器为例
- vs打包后生成的安装文件每次执行都需要重新安装C++ 2010运行库(x86)的解决方案
- Winform 生成不需要安装的exe可执行文件 ILMerge使用
- java web项目如何生成exe可执行文件,及安装文件教程
- 将visual studio 2008生成的可执行工程打包成安装软件
- 将java项目打包成jar包并生成可独立执行的exe文件
- java 从MyEclipse打包,做成exe可执行文件,再到做成安装文件详解
- 【最简单】Electron 怎么将网页打包成桌面应用(web前端页面怎么生成exe可执行文件)
- py2exe将脚本生成exe可执行文件,不用安装复杂的环境了
- DoNet 打包,能够自动生成数据库(可以执行某些exe,vbs文件)
- 在没有安装VC软件的电脑上也可以执行的exe文件
- Java桌面应用安装部署、安装程序制作(exe4j + Inno Setup)——之三:使用exe4j生成EXE可执行文件
- Windows系统下将Qt生成的应用程序打包成可以安装的文件setup***.exe
- 如何用vs2005生成.exe可执行安装文件和.exe文件的再打包问题
- Visual Studio Installer打包后生成的安装文件每次执行都需要重新安装C++ 2010运行库(x86)的解决方案
- VS2010 打包生成exe文件后 运行安装文件出现 TODO:<文件说明>已停止工作并已关闭
- 捆绑AIR runtime打包生成exe安装文件
- python 将py脚本打包生成exe可执行文件