Qt程序打包发布流程
我们使用Qt Creator编写的exe程序,只能在本机运行,跑到别的电脑上就无法运行了,提示缺少各种各样的库,程序无法提供给用户使用;今天我们来一起了解一下Qt程序的打包发布流程和使用Inno Setup工具打包程序:
一、设置程序图标
应用程序的图标分两种:
a、 主窗口图标,主要在程序运行时显示在主窗口左上角,或在任务栏上显示。
b、 运行程序图标,一般在桌面或文件夹中显示的缩略图标,可以点击后运行程序。
1、 设置主窗口图标
首先在绘图工具(例如Photoshop)中设计好图标,图标的分辨率最好大于3232。图标需要用ico或*png的文件。如果想偷懒一点,直接去这里(http://www.iconfinder.com/)下载,大量好看免费的图标。
将刚才的生成的图标文件放到yourProjectFolder/Resources/images目录下,或者任意一个程序可以找到的位置。最好将图标文件添加到qrc中统一管理,qrc文件的格式如下:
<RCC>
<qresourceprefix="/background">
<filealias="mainlogo">christmas_stocking.png</file>
</qresource>
</RCC>
然后再主窗口中使用,代码如下,代码很简单,不过记住这句代码一定要放到Mainwindow的构造函数里去,不然不会work。
setWindowIcon(QIcon(QStringLiteral(":/background/mainlogo")));
程序运行后的效果如下:
2. 设置运行程序的图标
设置运行程序的图标在各个平台是各不相同的,下面分别介绍。首先准备分辨率最好大于3232的图标文件。图标需要用ico的文件。
使用qmake生成makefile文件或使用QT Creator IDE,那么按下面三步实施:
第一步:创建一个包含图标图像的ICO文件,并将其保存在资源文件目录下,例如命名为:logo.ico;
第二步:创建一个.rc文件,QT Creator中Ctrl+N或 File - New File or Project,选择General中的Text File,名称填写为.rc文件(如applogo.rc),在里面只用写一行:
IDI_ICON1 ICON DISCARDABLE "logo.ico"
第三步:在工程文件8_4STMP.pro文件中写入如下内容:
RC_FILE = \
applogo.rc
再次编译程序,即可达到效果,效果图如下:
二、 编译release版本
注意将运行程序编译方式设置成Release,因为debug版本的程序中包含了调试信息,可以用来调试。而真正要发布程序时,要使用release版本,这样可以减少发布程序的体积同时增加软件的安全。
三、 发布程序
1、依赖库
Windows开发环境下windeployqt工具 (如果你已经将Qt的bin目录加入PATH环境,可以直接在命令行使用windeployqt调用.)。首先,将项目中的release文件中的可执行文件拷到一个新建的文件夹中,例如8_4STMP.exe,用Qt自带的生成必备的dll文件的程序windeployqt,来把必要的动态库拷到该文件夹中,打开命令行,输入windeployqt 8_4STMP.exe,这时候大部分的dll文件都自动拷贝过来了,但是如果项目还用了一些其他的SDK,比如OpenCV,Chartdir51等等,就需要手动将所需dll拷贝过来,如果不知道还需要哪些软件,可以用Dependency Walker来查看缺少哪些dll文件。
注意:如果发布的应用是Qt Quick Application应用,那么命令行需要加上QML的安装目录(windeployqt 8_4STMP.exe –qmldir)。命令中8_4STMP.exe是我的程序名称,qmldir是qml目录,这个目录一般位于mingwXX目录下,像我的目录就在D:\Qt\5.9\mingw53_32\qml
2、打包发布
上面我们把打包的脚本配置好了,我们需要打包是直接点击RUN就可以进行打包了:
今天讲解到现在结束了,想进行视频学习的小伙伴,可以进入我的****进行学习,课程地址:https://edu.csdn.net/course/detail/7275,课程资源下载地址:https://download.csdn.net/download/xuan_xuan_2/10641579,欢迎大家前来学习交流。
推荐阅读
-
C#利用VS中插件打包并发布winfrom程序
-
C#利用VS中插件打包并发布winfrom程序
-
解决Ubuntu下使用linuxdeployqt打包Qt程序问题
-
微信小程序上线发布流程图文详解
-
使用NuGet将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理
-
详解vue项目打包后通过百度的BAE发布到网上的流程
-
微信小程序如何上线,微信小程序发布流程
-
【转载】Visual Studio2017如何设置打包发布的WinForm应用程序的版本号
-
【转载】Visual Studio2017如何打包发布Winform窗体程序
-
【golang-GUI开发】Qt项目的打包发布