16-4_Qt 5.9 C++开发指南_Qt 应用程序的发布

2023-10-30

1. 应用程序发布方式

用 Qt 开发一个应用程序后,将应用程序提供给用户在其他计算机上使用就是应用程序的发布。应用程序发布一般会提供一个安装程序,将应用程序的可执行文件及需要的运行库安装到用户计算机上,即使用户计算机上没有安装 Qt 也能正常运行安装的程序。
Qt的应用程序发布有两种方式:静态链接和共享库方式

  • 静态链接(Static linking)是指用 Qt 编译应用程序时,将 Qt 的运行库等所需的支持文件全部静态编译到应用程序里,生成一个独立的可执行文件,应用程序发布只需很少的几个文件。这种方式的缺点是应用程序可执行文件很大,缺少灵活性。例如,当应用程序需要更新,或 Qt 有更新时,需要重新编译应用程序后再发布。而且,静态链接方式不能部署插件。

  • 共享库 (Shared Libraries) 方式是指按正常方式编译生成应用程序,将应用程序运行所需的各种共享库与应用程序一同发布给用户。这样,当Qt 的运行库更新时可以单独更新Qt 运行库,应用程序如果使用了插件(插件是以共享库形式存在的),也可以单独更新插件,这为应用程序更新提供了方便。

如果要使用静态链接发布应用程序,还需要将 Qt 以静态方式重新编译生成静态版本的 Qt,然后用静态版本的 Qt 编译和链接应用程序,才可以生成静态链接的应用程序。这个过程显然很花时间,也很复杂。所以,一般应用程序发布都采用共享库的形式。

2. Windows 平台上的应用程序发布

windeployqt.exe 是 Qt 自带的 Windows 平台发布工具,它可以自动为一个应用程序复制其运行所需的各种库文件、插件和翻译文件,生成可发布的目录。

书本中介绍了MinGW和MSVC编译的应用程序的发布实例,此处不做详解,详细也可参考:QT从入门到实战x篇_32_实战篇:翻金币的第8节内容即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

16-4_Qt 5.9 C++开发指南_Qt 应用程序的发布 的相关文章

  • asp.net 文本框文本模式数字,仅允许数字

    我只是想知道 ASP NET 中是否有一种方法只允许文本框中的数字textmode number 当我使用这个时
  • 在搜索 List 时,为什么 Enumerable.Any(Func predicate) 比带有 if 语句的 foreach 慢

    最近有件事引起了我的好奇心 Why is the Enumerable Any Func
  • 迭代变量并查找特定类型实例的技术

    我想迭代进程中内存中的变量 通过插件动态加载 并查找特定类型的实例 以前我可以找到特定类型 或内存中的所有类型 我可以创建类型的实例 我可以获取作为不同类型的字段包含的实例 但我无论如何都不知道只是 搜索 特定类型的实例 一种方法是使用 W
  • C#动态支持吗?

    看完之后这个帖子 https stackoverflow com questions 2674906 when should one use dynamic keyword in c sharp 4 0k和链接 我还有 2 个问题 问题 1
  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • 对齐 GridView 中的行值

    我需要在 asp net 3 5 中右对齐 gridview 列中的值 我怎样才能做到这一点
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • C++ 异步线程同时运行

    我是 C 11 中线程的新手 我有两个线程 我想让它们同时启动 我可以想到两种方法 如下 然而 似乎它们都没有按照我的预期工作 他们在启动另一个线程之前启动一个线程 任何提示将不胜感激 另一个问题是我正在研究线程队列 所以我会有两个消费者和
  • 从多个类访问串行端口

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • Azure 事件中心 - 按顺序接收事件

    我使用下面的代码从 Azure Event Hub 接收事件 https learn microsoft com en us azure event hubs event hubs dotnet framework getstarted s
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 当“int”处于最大值并使用 postfix ++ 进行测试时,代码定义良好吗?

    示例 未定义行为的一个示例是整数溢出的行为 C11dr 3 4 3 3 int溢出是未定义的行为 但这是否适用于存在循环的以下内容 并且不使用现在超出范围的副作用i 特别是 这是否后缀增量规格帮助 结果的值计算在副作用之前排序 更新操作数的
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • 如何一步步遍历目录树?

    我发现了很多关于遍历目录树的示例 但我需要一些不同的东西 我需要一个带有某种方法的类 每次调用都会从目录返回一个文件 并逐渐遍历目录树 请问我该怎么做 我正在使用函数 FindFirstFile FindNextFile 和 FindClo
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • 在类的所有方法之前运行一个方法

    在 C 3 或 4 中可以做到这一点吗 也许有一些反思 class Magic RunBeforeAll public void BaseMethod runs BaseMethod before being executed public
  • 耐用功能是否适合大量活动?

    我有一个场景 需要计算 500k 活动 都是小算盘 由于限制 我只能同时计算 30 个 想象一下下面的简单示例 FunctionName Crawl public static async Task
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • Shopify开发入门-前端保姆级教程

    Shopify开发入门 前端保姆级教程 本文旨在介绍Shopify开发入门 环境 配置等 帮助开发者配置环境 了解各个开发模式的区别及用途 已有Shopify开发经验者可退出 以免浪费你的宝贵时间 本文5k字 图片 链接 代码块较多 请耐心
  • OSPF的防环机制

    文章目录 域间防环 域内防环 有向图转化 有向图的画法 示例 SPF算法 OSPF将整个OSPF域划分为多个区域 区域内部通过拓扑信息计算路由 区域间传递路由信息 实现全网可达 OSPF防环机制主要是体现在域内防环和域间防环 域间防环 OS
  • 并发锁分析

    锁 为什么加锁 并发会造成数据混乱 事务 原子性a 一致性c 隔离性i 持久性d 加锁的影响和优化点 线程切换的开销 缓存命中率 加锁失败会进行线程切换 用户态和内核态的切换开销 栈的切换 寄存器切换 synchronized重量锁的实现是
  • 管螺纹如何标注_螺纹基础知识,搞机械的必须懂这些

    螺纹是零件上常见的一种结构 它被广泛地用于零件之间的连接 也可以起传递运动和动力的作用 主要介绍国家标准对螺纹的结构 尺寸 画法和标注的规定 一 螺纹种类 按牙型可分为三角形 梯形 矩形 锯齿形和圆弧螺纹 按螺纹旋向可分为左旋和右旋 按螺旋
  • 基于CEEMDAN集合经验模态分解算法Python程序

    基于CEEMDAN集合经验模态分解算法Python程序 可用于时间序列和其他领域 特色 1 基于Python 2 数据从excel文件中读取 更换简单 全部完整的代码 保证可以运行的代码看这里 http t csdn cn obJlChtt
  • springboot整合quartz项目使用(含完整代码)

    前言 quartz是一个定时调度的框架 就目前市场上来说 其实有比quartz更优秀的一些定时调度框架 不但性能比quartz好 学习成本更低 而且还提供可视化操作定时任务 例如xxl Job elastic Job这两个算是目前工作中使用
  • 高并发情况下修改系统参数

    单进程最大打开文件数限制 一般的发行版 限制单进程最大可以打开1024个文件 这是远远不能满足高并发需求的 调整过程如下 在 号提示符下敲入 ulimit n 65535 限制修改失败了 会显示 Operationnotpermitted
  • pandas DataFrame数据转为list

    首先使用np array 函数把DataFrame转化为np ndarray 再利用tolist 函数把np ndarray 转为list 示例代码如下 coding utf 8 import numpy as np import pand
  • 仪表识别之数字表识别

    转自 https blog csdn net huneng1991 article details 82049207 这篇文章讲述了仪表上的数字表的识别 看图片效果还是挺好的 这里记录一下备用 2 识别检测方法 这篇文章主要用的方法是机器学
  • “猜数字“游戏,系统随机生成一个[1,100]的数字,由用户输入数字后,计算机提示输入数字“偏大”、“偏小”,并记录猜数次数

    import java util Scanner public class Demo public static void main String args TODO Auto generated method stub Scanner i
  • [C语言]分支语句:if语句、switch语句

    分支语句也称为选择结构 条件判断语句 顾名思义 要么选择A 要么选择B 或选择其他的一种结构 在c语言中 常见的分支语句分别有 if语句和switch语句 目录 1 if语句 1 1if语句的结构 1 2if语句的注意点 2 switch语
  • 【MATLAB】rem和mod函数的区别

    求整数x y的余数 rem x y 求模 mod x y 如果x和y的符号相同 同为 同为 那么rem x y mod x y 正数与正数 负数与负数 取整结果两个函数效果一样 如果x和y的符号相反 那么mod x y rem x y y
  • 存储过程的概念,函数与存储过程的区别

    存储过程 为了完成特定功能的sql语句集进行编译优化后 存储在数据库服务器中 用户通过指定存储过程的名字来调用执行 区别 本质上没有区别 1 存储过程作为一个独立部分 函数可以作为查询语句的一个部分 2 存储过程功能较为复杂 函数功能针对性
  • Linux系统下安装Python爬虫环境+模拟浏览器插件

    一 服务器版本 Centos7以上版本 二 配置python环境 1 安装依赖包 yum y install gcc gcc c yum y install zlib zlib devel yum y install bzip2 bzip2
  • 如何通过gradle来导入jar包

    很多android项目在lib文件夹下看不到任何的jar包 但是项目中确实导入了很多的第三方jar包 这里我们来看看androidstudio通过gradle来导入jar包的方法 首先我们需要进入ProjectStructure界面 打开这
  • C8051 不能写数据

    问题 使用C8051f520芯片 在线调试发现不能给变量赋值 解决 芯片ram只有256B 我在keil设置了pdata 改成data就行了 网友资料显示 pdATa 外部扩展RAM的低256个字节 地址出现在A0 A7的上时读写 用mov
  • ipad未能与itunes连接到服务器,为什么无法连接到iTunes Store?iPhone/iPad解决方法

    一些用户在使用iPhone时 偶尔会发现在登录Apple ID或者是在Apple Store中下载软件时 会显示无法连接到iTunes Store 出现这个提示 也就无法在Apple Store中进行相关操作了 那么 大家知道为什么无法连接
  • Eigen库中vector.transpose()函数什么意思

    在使用Eigen库时 我们阅读源码的时候可能看到在输出 显示 一个向量时 有如下表示形式 定义一个向量 Vector3d p2 打印该向量 cout lt lt p2 lt lt endl 列向量显示 cout lt lt p2 trans
  • 【2D标注】cvat-canvas添加标尺线

    一 场景概述 在使用cvat canvas做2D标注开发时 有时我们需要对2D图形添加一些标尺线 例如前方距离当前摄像头的距离标尺 这时候我们需要添加标尺线 基于cvat canvas现有的框架设计模式 实现逻辑如下 在canvasView
  • 16-4_Qt 5.9 C++开发指南_Qt 应用程序的发布

    文章目录 1 应用程序发布方式 2 Windows 平台上的应用程序发布 1 应用程序发布方式 用 Qt 开发一个应用程序后 将应用程序提供给用户在其他计算机上使用就是应用程序的发布 应用程序发布一般会提供一个安装程序 将应用程序的可执行文