QT 应用编程: 应用程序动态发布

简介: QT 应用编程: 应用程序动态发布

一、QT程序发布方式

Qt 发布的时候,通常使用两种方式:

(1)静态编译

(2)动态编译

静态编译:把相关联的库一并引入可执行程序,虽然发布简单,但可执行程序本身较大。

动态编译:相关联的库,以 dll 的形式引用,不被包含进可执行程序,附带的dll文件较多,但可执行程序本身较小。


二、动态打包发布

2.1 打包工具

在QT5以后的版本中,Qt 的编译器安装包里自带了一个打包工具: windeployqt.exe


windeployqt 工具可以自动复制插件文件夹和 dll 文件、 qm 文件到程序目录。,可以得到完整的 exe 程序发布集合,解决所有的依赖关系,不用手动去一个一个复制(QT4程序发布就需要自己手打复制,比较麻烦)。


2.2 准备工作

1. 需要一个完整正常编译的 QT 工程。


2. 编译的时候选择 Release 方式部署(不要选择Debug方式)。

image.png

image.png

2.3  windeployqt.exe 工具位置

windeployqt.exe 工具在 QT 的安装目录下。


比如:

MINGW 编译器:


C:\app_setup\for_QtQt5.5.1\5.5\mingw492_32\bin\windeployqt.exe

VS 编译器:


D:\Qt\Qt5.5.0\5.5\msvc2010\bin\windeployqt.exe


当前 QT程序 采用哪一个编译器, 就选择对应的 windeployqt.exe 程序。


2.4 打包发布(自动寻找依赖)

第一步:  将 QT 编译生成的 xxx.exe 可执行文件拷贝到一个单独的文件夹。

image.png

第二步: 按下键盘上的windows按钮,打开窗口列表,找到QT安装的位置(按字母排序的Q),选择当前QT程序编译时使用的编译器,打开命令行终端。

image.png

第三步:  切换到QT程序存放的目录下。

image.png

image.png

发布成功:

image.png


目录
相关文章
|
3月前
|
网络协议 容器
【qt】 TCP编程小项目
【qt】 TCP编程小项目
55 0
|
4月前
|
Linux iOS开发 开发者
Qt问题(二):无法定位程序输入点于动态链接库
动态链接库(Dynamic Link Library,简称DLL)是一种可执行文件格式,常见于Windows操作系统中,而在Linux和macOS等其他操作系统中,相似的概念通常被称为共享库(Shared Library)。动态链接库允许程序在运行时加载所需的代码和数据,而不是在编译时静态链接到应用程序中。这种方式带来了几个重要的优点:
426 3
|
2月前
|
C语言 Android开发 C++
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
本文介绍了使用MTuner软件进行Qt MinGW编译程序的内存泄漏检测的方法,提供了MTuner的下载链接和测试代码示例,并通过将Debug程序拖入MTuner来定位内存泄漏问题。
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
|
3月前
|
API 开发工具 C语言
C语言与图形界面:利用GTK+、Qt等库创建GUI应用。
C语言与图形界面:利用GTK+、Qt等库创建GUI应用。
158 0
关于Qt的pri模块化编程详解
关于Qt的pri模块化编程详解
|
3月前
|
JavaScript Java Go
【Qt】Qt编程注意事项
【Qt】Qt编程注意事项
|
4月前
|
监控 Python
`pytest-qt` 是一个用于在 Qt 应用程序中进行 GUI 测试的 pytest 插件。
`pytest-qt` 是一个用于在 Qt 应用程序中进行 GUI 测试的 pytest 插件。
|
4月前
|
调度
【浅入浅出】Qt多线程机制解析:提升程序响应性与并发处理能力
在学习QT线程的时候我们首先要知道的是QT的主线程,也叫GUI线程,意如其名,也就是我们程序的最主要的一个线程,主要负责初始化界面并监听事件循环,并根据事件处理做出界面上的反馈。但是当我们只限于在一个主线程上书写逻辑时碰到了需要一直等待的事件该怎么办?它的加载必定会带着主界面的卡顿,这时候我们就要去使用多线程。
148 6
|
5月前
Qt MainWindow 程序主窗口
Qt MainWindow 程序主窗口