使用windeployqt和InstallShield打包发布Qt软件的流程
前言
Qt编译之后需要打包发布,并且发布给用户后需要增加一个安装软件,通过安装软件可以实现Qt软件的安装;用于安装软件的软件有很多,这里主要介绍InstallShield使用的流程;
使用windeployqt打包Qt编译后的程序
Qt程序编译后是这样的文件,没有包括依赖的dll环境;此时发布给别人会报错缺少dll文件,因此需要将dll文件打包发布;
方法一:
如果是VS+Qt联合编译的,需要添加一个VS的环境变量。如果是Qt单独编译,则直接跳到3
- 找到VS的安装目录,比如我的是默认安装在C盘。复制路径
C:\Program Files\Microsoft Visual Studio\2022\Community\VC
- 打开环境变量,添加一个系统变量,变量名为VCINSTALLDIR,变量值为
C:\Program Files\Microsoft Visual Studio\2022\Community\VC
- win+R输入cmd打开命令窗口,通过cd /d命令进入到我们要操作的文件夹(.exe所在文件夹)
cd /d C:\Users\BaiYang\Desktop\asd
或者直接在文件窗口地址栏输入cmd回车。
- 执行 “windeployqt ExamSys.exe” 命令,换成自己的.exe名字
方法二:
- 先找到windeployqt.exe的位置
比如说,我的qt安装位置是:
C:\Qt\Qt5.9.6\5.9.6\msvc2015_64\bin\windeployqt.exe
命令行切换到此位置
- 再找到自己生成的exe文件位置,比如说,我的是:
G:\bin\Test.exe
- cmd进入命令行,执行命令
C:\Qt\Qt5.9.6\5.9.6\msvc2015_64\bin\windeployqt.exe G:\bin\Test.exe
windeployqt执行后会将依赖的dll文件打包在一起;
使用InstallShield软件发布Qt打包后的文件,制作成程序压缩包
下载及安装InstallShield
InstallShield
百度网盘提取码:abcd
安装过后,把fix文件夹内的文件更新到安装后的system文件夹内;
安装后的InstallShield软件界面是:
第一步
点击Home->New,选择Basic MSI,这里是管理整个项目的意思,给项目起个名字。
名称为test,会在G盘建立一个test.ism的文件;
第二步
软件的Installation Designer。这里是整个项目各个参数的设置,可以对项目细节完善。可以先用快捷方式先确定好项目,再从Installation Designer这里完善。
第三步
先用快捷方式完成项目。点击view->ProgectAssistant。进入助手界面。
第四步
按照最下面一行的提示,逐步修改项目。
- 确定软件信息
- 这里可以直接选默认选项
-
最重要的是这里,确定安装文件,将自己的exe文件和依赖的dll文件添加到文件内;文件夹选择Add Folders(注意软件很容易卡死,随时点击save项目,不然又要从头开始)
在ProgramFilesFolder上面就是CommonFileFolder,这里存放的是软件的一些配置文件等;也可以将这个路径设置成系统环境变量,将dll放在这里,这样你可以安装一个纯exe文件,程序会从系统路径内寻找dll文件;
像我自己的电脑里便有Common Files里面有之前安装软件存放的配置文件;
-
这两个可以跳过默认,也可以自己选择
-
选择安装时的语言
-
发布程序安装包
点击Build Installation便开始制作安装包,等待制作完成
第六步
若是用户安装时需要设定用户的系统变量,比如说path,可以跳回到Installation Designer界面,选择Environment Variables;
增加系统环境变量
设置环境变量Path
对这里的参数说明:
On Install:
Set:已经存在的环境变量
Create:创建一个新的环境变量
Placement:
Replace:替换以前的值
Prefix:在前面追加值
Append:在后面追加值
On Uninstall:
Remove:在卸载的时候删除
Leave:在卸载的时候保留
Type:
User:用户变量
System:系统变量
以上流程走完就是一个简易的InstallShield发布过程,当然,比如说setup.exe的ICON设置等都可以在Installation Designer慢慢完成;
验证发布
上述流程走完之后,便可以在test.ism同级目录下,生成一个test文件夹;
在DISK1目录下会看到安装程序,点击会看到安装过程;
至此,Qt编译生成的exe发布完成;
相关文章:
![](https://img-blog.csdnimg.cn/6c950a7a4af84db6bae3898ecafa245e.png#pic_center)
使用windeployqt和InstallShield打包发布Qt软件的流程
前言 Qt编译之后需要打包发布,并且发布给用户后需要增加一个安装软件,通过安装软件可以实现Qt软件的安装;用于安装软件的软件有很多,这里主要介绍InstallShield使用的流程; 使用windeployqt打包Qt编译后的程序 Qt程序…...
![](https://www.ngui.cc/images/no-images.jpg)
解决selenium的getdrive()方法阻塞问题
selenium里面的Webdriver的get()方法默认是阻塞的,也就是说要等整个页面全都加载完它才会相应。但我们大部分时候不需要用到页面里的所有东西,也许只需要用到里面的一个元素就行了 所以下面是我的解决方法: 初始化代码: # 设置…...
![](https://www.ngui.cc/images/no-images.jpg)
js的闭包
闭包是有权限访问其他函数作用域的局部变量的一个函数 代码 function outer(){const a1;function f(){console.log(a)}f()}outer() 简单来说:闭包内层函数引用的外层函数变量 为什么要使用闭包? 用此方法可以来统计函数调用次数, 但是如…...
![](https://img-blog.csdnimg.cn/99e454d3729d4643845f9282ad0a41e2.png)
ubuntu20.04 直接安装vpp23.06 测试双 VPP Tunnel Ike2
环境信息:VMware Workstation 17 Pro ubuntu20.04 (清华源) ubuntu 源点进去选:ubuntu-22.04.3-desktop-amd64.iso 如果之前装过VPP,用以下命令确定是否卸载干净: dpkg -l | grep vpp dpkg -l | grep DPDK 卸载: …...
![](https://img-blog.csdnimg.cn/b6060d28216043678dd1866033c6fd13.png)
mysql sql 执行流程
监控查询缓存的命中率 show status like ‘%qcache%’; mysql 缓存机制,以及 8.0 为啥取消 select sql_NO_Cache * from 表 where xxx; # 不使用缓存...
![](https://www.ngui.cc/images/no-images.jpg)
go-kafka
go kafka包 本文使用的是kafka-go 6.5k 这个包 其他包参考: 我们在细分市场中非常依赖GO和Kafka。不幸的是,在撰写本文时,Kafka的GO客户库的状态并不理想。可用选项是: 萨拉玛(Sarama) 10k,这…...
![](https://img-blog.csdnimg.cn/35a0cb38c6064224a391aa1e60b3d7b4.png)
如何在windows电脑上安装多个node,并可以进行随意切换
一、进入官网http://nvm.uihtm.com/ 下载 二、启动解压后的程序 1.开始安装nvm 选择要安装的目录 一直下一步–下一步–最后点击完成 3.最后点击完成即可 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3656568c7e9946e8a04219811fc4c4d3.png 三、在cmd控制台进行操作…...
![](https://img-blog.csdnimg.cn/b17351ffee5a4d10a2fa86710f62e632.png)
《机器学习核心技术》分类算法 - 决策树
「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 决策树 1、决策树API2、决策时实际应用2.1、获取数据集2.2、划分数据集2.3、决策…...
![](https://img-blog.csdnimg.cn/f0e8168bbe654c32b42bf0ee6240d5fe.png)
aws PinPoint发附件demo
php 版aws PinPoint发附件demo Laravel8框架,安装了"aws/aws-sdk-php": "^3.257" 主要代码: public function sendRawMail(Request $request) {$file $request->file(attachment);/*echo count($file);dd($file);*/$filenam…...
![](https://img-blog.csdnimg.cn/4a1246d8743347e285049b9c1751e014.png)
边写代码边学习之Bidirectional LSTM
1. 什么是Bidirectional LSTM 双向 LSTM (BiLSTM) 是一种主要用于自然语言处理的循环神经网络。 与标准 LSTM 不同,输入是双向流动的,并且它能够利用双方的信息。 它也是一个强大的工具,可以在序列的两个方向上对单词和短语之间的顺序依赖…...
![](https://www.ngui.cc/images/no-images.jpg)
Django学习笔记-实现联机对战
笔记内容转载自 AcWing 的 Django 框架课讲义,课程链接:AcWing Django 框架课。 CONTENTS 1. 统一长度单位2. 增加联机对战模式3. 配置Django Channels 1. 统一长度单位 多人模式中每个玩家所看到的地图相对来说应该是一样的,因此需要固定地…...
![](https://img-blog.csdnimg.cn/3ed2bafafbcf47bcadd45c5d9a5ff310.png)
nacos总结1
5.Nacos注册中心 国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。 5.1.认识和安装Nacos Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,…...
![](https://img-blog.csdnimg.cn/0cdd8c86ae794d11a53c9f233f65619e.png)
Web安全测试(三):SQL注入漏洞
一、前言 结合内部资料,与安全渗透部门同事合力整理的安全测试相关资料教程,全方位涵盖电商、支付、金融、网络、数据库等领域的安全测试,覆盖Web、APP、中间件、内外网、Linux、Windows多个平台。学完后一定能成为安全大佬! 全部…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.5/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N6B9)
Webstorm 入门级玩转uni-app 项目-微信小程序+移动端项目方案
1. Webstorm uni-app语法插件 : Uniapp Support Uniapp Support - IntelliJ IDEs Plugin | Marketplace 第一个是不收费,第二个收费 我选择了第二个Uniapp Support ,有试用30天,安装重启webstorm之后,可以提高生产率…...
![](https://www.ngui.cc/images/no-images.jpg)
从零开始的Hadoop学习(三)| 集群分发脚本xsync
1. Hadoop目录结构 bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件lib目录:存放Hadoop的本地库(对…...
![](https://www.ngui.cc/images/no-images.jpg)
golang http transport源码分析
golang http transport源码分析 前言 Golang http库在日常开发中使用会很多。这里通过一个demo例子出发,从源码角度梳理golang http库底层的数据结构以及大致的调用流程 例子 package mainimport ("fmt""net/http""net/url""…...
![](https://img-blog.csdnimg.cn/1908e35164664e0e8c163e34378ca630.png)
spring boot 项目整合 websocket
1.业务背景 负责的项目有一个搜索功能,搜索的范围几乎是全表扫,且数据源类型贼多。目前对搜索的数据量量级未知,但肯定不会太少,不仅需要搜索还得点击下载文件。 关于搜索这块类型 众多,未了避免有个别极大数据源影响整…...
![](https://img-blog.csdnimg.cn/f680974bae934cab810b137c624cb4a0.png)
统计学补充概念-17-线性决策边界
概念 线性决策边界是一个用于分类问题的线性超平面,可以将不同类别的样本分开。在二维空间中,线性决策边界是一条直线,将两个不同类别的样本分隔开来。对于更高维的数据,决策边界可能是一个超平面。 线性决策边界的一般形式可以表…...
![](https://www.ngui.cc/images/no-images.jpg)
指针变量、指针常量与常量指针的区别
指针变量、指针常量与常量指针 一、指针变量 定义:指针变量是指存放地址的变量,其值是地址。 一般格式:基类型 指针变量名;(int p) 关键点: 1、int * 表示一种指针类型(此处指int 类型),p(变量…...
![](https://img-blog.csdnimg.cn/aec4019b09f14d2cae5650d124ae666a.png)
mq与mqtt的关系
文章目录 mqtt 与 mq的区别mqtt 与 mq的详细区别传统消息队列RocketMQ和微消息队列MQTT对比:MQ与RPC的区别 mqtt 与 mq的区别 mqtt:一种通信协议,规范 MQ:一种通信通道(方式),也叫消息队列 MQ…...
![](https://www.ngui.cc/images/no-images.jpg)
代码大全阅读随笔 (二)
软件设计 设计就是把需求分析和编码调试连在一起的活动。 设计不是在谁的头脑中直接跳出来了,他是不断的设计评估,非正式讨论,写实验代码以及修改实验代码中演化和完善。 作为软件开发人员,我们不应该试着在同一时间把整个程序都塞…...
![](https://www.ngui.cc/images/no-images.jpg)
vue 项目的屏幕自适应方案
方案一:使用 scale-box 组件 属性: width 宽度 默认 1920height 高度 默认 1080bgc 背景颜色 默认 "transparent"delay自适应缩放防抖延迟时间(ms) 默认 100 vue2版本:vue2大屏适配缩放组件(vu…...
![](https://www.ngui.cc/images/no-images.jpg)
23软件测试高频率面试题汇总
一、 你们的测试流程是怎么样的? 答:1.项目开始阶段,BA(需求分析师)从用户方收集需求并将需求转化为规格说明书,接 下来在项目组领导会组织需求评审。 2.需求评审通过后,BA 会组织项目经理…...
![](https://img-blog.csdnimg.cn/img_convert/1ce76723867177f2b5b3c66335001385.jpeg)
PHP8的匿名函数-PHP8知识详解
php 8引入了匿名函数(Anonymous Functions),它是一种创建短生命周期的函数,不需要命名,并且可以在其作用域内直接使用。以下是在PHP 8中使用匿名函数的知识要点: 1、创建匿名函数,语法格式如下&…...
![](https://img-blog.csdnimg.cn/0149c2f2d1544e8481fd872e872a6f2a.png)
Redis—Redis介绍(是什么/为什么快/为什么做MySQL缓存等)
一、Redis是什么 Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、…...
![](https://img-blog.csdnimg.cn/c969940741e64abcbbfcf41ed1609c40.png)
C语言链表梳理-2
链表头使用结构体:struct Class 链表中的每一项使用结构体:struct Student#include <stdio.h>struct Student {char * StudentName;int StudentAge;int StudentSex;struct Student * NextStudent; };struct Class {char *ClassName;struct Stude…...
![](https://img-blog.csdnimg.cn/67f4ce53a4444df19bf434bec4fe2b26.png)
【深度学习】实验03 特征处理
文章目录 特征处理标准化归一化正则化 特征处理 标准化 # 导入标准化库 from sklearn.preprocessing import StandardScalerfrom matplotlib import gridspec import numpy as np import matplotlib.pyplot as plt import warnings warnings.filterwarnings("ignore&quo…...
![](https://img-blog.csdnimg.cn/4e9342b8222549a0850439744198f6ba.png)
基于Dpabi的功能连接
1.预处理 这里预处理用Gretna软件进行,共分为以下几步: (1)DICOM转NIfTI格式 (2)去除前10个时间点(Remove first 10 times points):由于机器刚启动、被试刚躺进去也还需适应环境,导致刚开始扫描的数据很…...
![](https://img-blog.csdnimg.cn/7a505b8251ea431c8d7f676e74ae45ac.png#pic_center)
在React项目是如何捕获错误的?
文章目录 react中的错误介绍解决方案后言 react中的错误介绍 错误在我们日常编写代码是非常常见的 举个例子,在react项目中去编写组件内JavaScript代码错误会导致 React 的内部状态被破坏,导致整个应用崩溃,这是不应该出现的现象 作为一个框架…...
![](https://img-blog.csdnimg.cn/149af236ef244807a498553caa0b246d.png)
基于内存池的 简单高效的数据库 SDK简介
基于内存池的 简单高效的数据库 SDK简介 下载地址: https://gitee.com/tankaishuai/powerful_sdks/tree/master/shm_alloc_db_heap shm_alloc_db_heap 是一个基于内存池实现的简单高效的文件型数据存储引擎,利用它可以轻松地像访问内存块一样读、写、增…...
![](https://img-blog.csdnimg.cn/img_convert/9d1bde2ec2575b28b30ca50562ffc26b.png)
快递公司网站模板/湘潭网站设计
简介 基于SpringCloud(Hoxton.SR1) SpringBoot(2.2.4.RELEASE) 的 SaaS型微服务脚手架,具备用户管理、资源权限管理、网关统一鉴权、Xss防跨站攻击、自动代码生成、多存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发ÿ…...
![](/images/no-images.jpg)
网站模板免费下载中文版/百度电话客服24小时
“计算机科学只存在两个难题:缓存失效和命名。” ——Phil KarIton 前言 命名一直是我编程过程中很头痛的事,有时为了一个恰当的名称是想了又想,还忍不住Google一下。命名真是一门艺术,好的命名那叫一个高大上。今天总结一些前端命…...
![](/images/no-images.jpg)
wordpress域名访问/千锋教育的真实性
今天调试用例的脚本去调用封装好的日志模块(算是补充前面的写Python日志logging模块的使用的一个小bug吧),出现写入多个日志文件的问题,看下运行的效果分析:一共运行了4条myLog.logger().inf()(except异常那条不算),出现了4个日志文件&#x…...
![](https://images0.cnblogs.com/blog/331622/201305/19122340-83a7d761f263483e84cfd8d8b0b360e1.gif)
潍坊专业网站制作公司营销/企业网站推广模式
转载于:https://www.cnblogs.com/zhouwenwu/archive/2013/05/19/3086688.html...
![](https://images2018.cnblogs.com/blog/1345586/201809/1345586-20180911194243920-1717167200.png)
建设工程合同属于专属管辖吗/拼多多关键词优化步骤
第一 找到你要添加的jar包的路径,并复制这个路径 第二 winr,输入cmd然后打开cmd: 第三 输入以下格式:mvn install:install-file -DfileC:***\mail.jar -DgroupIdcom.demowar -DartifactIdtest -Dversion1.0.0 -Dpackagingjar 上面的C:***\mail.jar是自己…...
![](/images/no-images.jpg)
佛山顺德网站制作公司哪家好/网络营销的未来发展趋势
怎么判断网站被降权了,觉得这篇文章写的很好。 其实我一直觉得很多压力都是人自己给自己的,像我现在就没有压力,但我不知道为什么经理压力那么大,刚才测试自己的心理年龄,与我实际年龄一样一样的,我觉得自己…...