QT程序打包--教你做一个可安装的应用程序
2017-09-04 by qq_18286031
很多Qt爱好者想发布自己的Qt软件,但却发现在其他没有安装Qt SDK的机器上无法运行,这就是本文想要说明的问题。现在网上大部分软件都要发布自己开发的应用程序,都会打包到exe文件中,待安装完exe文件后,就会生成很多小文件,其实原理都一样,只是各自使用的打包工具不能罢了。本文主要介绍在Windows平台如何打包自己的Qt程序,相对比较简单的,这并没有正规软件的向导流程。
第一步,先来对程序进行图标设置
1.创建一个包含图标图像的ICO文件,并将其保存在源文件目录下,可命名为mytest.ico;
2.创建一个.rc文件,包含如下内容:
IDI_ICON1 ICON DISCARDABLE "mytest.ico"
3.只需要在工程文件Test.pro文件中写入如下内容:
RC_FILE = myico.rc
然后进行qmake,再编译就可以了。
第二步,来对程序进行编译打包
先将程序改为Release版,然后编译运行。![](https://www.th7.cn/d/file/p/2017/09/04/0fbd95eadbb94a08f4855c82b2534da9.jpg)
将生成的exe拷贝到一个路径下,这里我拷贝的是 E:/Qt/project/Test 这个路径下面,这个可以自己选择。然后如下图所示,双击打开这个。
![](https://www.th7.cn/d/file/p/2017/09/04/919f0559d5fe27c9cd5e8b07bf0164e5.jpg)
然后cd到所选定的路径下面
使用windeployqt 命令,后面加的是exe的的文件名,然后回车,就可以将其进行打包了,这儿可能还有一些
第三方的dll,这个需要自己手动添加。
下面的这个就可以在别人的电脑上运行了。
接着我们就要把这个做成安装包了。
需要用到的工具有Inno Setup Compiler
新建一个setup.iss
其代码如下:
; This script needs Inno Setup Preprocessor (ISPP by Alex Yackimoff) to compile succefully.; To download and install ISPP, get the Inno Setup QuickStart Pack from http://www.jrsoftware.org/isdl.php#qsp#define MSName "测试打包"#define MSVer GetFileVersion("./Test.exe")[Setup]OutputBaseFilename=Test-{#MSVer}OutputDir=.Compression=lzmaSolidCompression=yes; NOTE: The value of AppId uniquely identifies this application.; Do not use the same AppId value in installers for other applications.; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)AppName={#MSName}AppVersion={#MSVer}AppVerName={#MSName} V{#MSVer}AppPublisher=TestVersionInfoVersion={#MSVer}AppPublisherURL=AppSupportURL=AppUpdatesURL=DefaultDirName=D:/Test/MyTestDefaultGroupName={#MSName}[Languages]Name: chinese; MessagesFile: compiler:Default.isl[Files] Source: ./Test.exe; DestDir: {app}; Flags: ignoreversionSource: ./iconengines/*.*; DestDir: {app}/iconengines; Flags: ignoreversionSource: ./imageformats/*.*; DestDir: {app}/imageformats; Flags: ignoreversionSource: ./platforms/*.*; DestDir: {app}/platforms; Flags: ignoreversionSource: ./translations/*.*; DestDir: {app}/translations; Flags: ignoreversionSource: ./*.dll; DestDir: {app}; Flags: ignoreversion[Icons]Name: {commondesktop}/{#MSName}; Filename: {app}/Test.exe; WorkingDir: {app}Name: {commonstartup}/{#MSName}; Filename: {app}/Test.exe; WorkingDir: {app}Name: {group}/{#MSName}; Filename: {app}/Test.exe; WorkingDir: {app}Name: {group}/卸载{#MSName}; Filename: {app}/unins000.exe[Run]Filename: {app}/Test.exe; WorkingDir: {app}; Flags: nowait postinstall; Description: 运行 {#MSName}只要点击运行,然后就会生成我们需要的安装包了。![](https://www.th7.cn/d/file/p/2017/09/04/ff069634763663a29312bf0ad6a7999b.jpg)
如下图所示的安装包
安装完成后桌面上就会生成快捷键。双击就可以打开程序,到此,就完成了一个程序的打包。