windows下动态发布QT程序

简介: windows下动态发布QT程序

Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,

如果自己去复制dll,很可能缺少几个文件,导致exe在别的电脑里无法正常运行。

因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。

windeployqt 工具可以自动复制,插件文件夹和 dll文件、qm文件。可以得到完整的 exe 程序发布集合,解决所有的依赖关系。


笔者的开发环境:Qt 5.5.0+VS2010

一、Qt Widgets Application可执行程序发布方式

首先用 QtCreator 新建一个 Qt Widgets Application 项目,项目名字假定是 QT_1。

然后以 Release 方式编译生成 exe 程序:

1、编译工程


图1 选择构建程序为-发布版本(release)


图2 编译成功后,会在工程路径release目录下生成xx.exe文件。


图3 生成的.exe文件

将这个生成的QT_1.exe文件拷贝至新的文件夹。

比如创建一个QT_release的文件夹,将QT_1.exe拷贝至QT_release文件夹,等待发布。


图4


2、运行windeployqt工具,发布软件

Windeployqt工具在什么地方?

答:在QT软件安装的bin目录下。

笔者的Windeployqt工具路径:D:\Qt\Qt5.5.0\5.5\msvc2010\bin


如图所示:


图5


Windeployqt工具需要在DOS命令行运行,所以需要将Windeployqt工具路径添加到系统的环境变量里。

添加环境变量步骤:以win8为例

我的电脑–>属性—>高级系统设置—>环境变量


环境变量之间需要以分号隔开。


图6添加环境变量步骤

环境变量添加成功后生效的方法:

1、重启电脑生效

2、在DOS命令行输入set pata=xxx,关闭DOS窗口

(在DOS下设置环境变量,不会影响系统设置的环境变量,DOS下的设置环境变量只是一个临时变量,在DOS下设置环境变量,虽然不会影响系统设置的环境变量,但是会触发系统设置的环境变量更新,这正是我们所需要的结果)

3、启动DOS命令窗口,打印出环境,看路径是否生效。(echo %path%)


如果环境变量没有及时生效,又不想重启电脑,可以设置临时的环境变量。

如图:


设置好环境变量之后,接下来就准备运行打包软件。


打包步骤

1、通过命令进入刚才存放QT_1.exe的文件夹里。

cd /d D:\QT_XX\QT_release


2、运行Windeployqt工具自动打包

在存放QT_1.exe的目录运行D:\QT_XX\QT_release>Windeployqt QT_1.exe 即可自动寻找依赖文件。


图7 自动查找依赖项

4、打包结束后,在存放QT_1.exe文件的目录下会出现很多dll等库文件。这些文件是QT软件运行时需要依赖的文件。


图8


5、将此文件夹打包发给其他电脑,在其他电脑解压双击xxx.exe即可运行。

二、Qt Quick Application发布方式


首先用 QtCreator 新建一个 Qt Quick Application 项目,项目名字假定是 QML_1。

然后以 Release 方式编译生成 exe 程序。

步骤与上面Qt Widgets Application发布方式基本一样。


唯一不同是最后执行的命令:

windeployqt QML_1.exe –qmldir D:\Qt\Qt5.5.0\5.5\msvc2010\qml


路径D:\Qt\Qt5.5.0\5.5\msvc2010\qml 需要根据自己QT的安装路径决定。

目录
相关文章
|
4月前
|
存储 算法 C++
【Qt应用开发】复刻经典:基于Qt实现Windows风格计算器(加减乘除、删除、归零功能全解析)
在Qt中,"栈"的概念主要体现在两个层面:一是程序设计中的数据结构——栈(Stack),二是用户界面管理中的QStackedWidget控件。下面我将分别简要介绍这两个方面:
142 4
|
4月前
|
Linux iOS开发 开发者
Qt问题(二):无法定位程序输入点于动态链接库
动态链接库(Dynamic Link Library,简称DLL)是一种可执行文件格式,常见于Windows操作系统中,而在Linux和macOS等其他操作系统中,相似的概念通常被称为共享库(Shared Library)。动态链接库允许程序在运行时加载所需的代码和数据,而不是在编译时静态链接到应用程序中。这种方式带来了几个重要的优点:
457 3
|
5月前
|
Windows
Windows下对于Qt中带 / 的路径的处理
Windows下对于Qt中带 / 的路径的处理
46 9
|
2月前
|
C语言 Android开发 C++
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
本文介绍了使用MTuner软件进行Qt MinGW编译程序的内存泄漏检测的方法,提供了MTuner的下载链接和测试代码示例,并通过将Debug程序拖入MTuner来定位内存泄漏问题。
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
|
2月前
|
编译器 Windows
plugin cannot be loaded for module “QtQuick“ && Could not load the Qt platform plugin “windows“
本文讨论了在Qt应用程序中遇到的平台插件加载问题,包括具体的错误信息、解决方案和参考链接。问题表现为无法加载“QtQuick”模块的插件,并且无法找到“windows”平台插件。解决方案是修改环境变量`Qt5_DIR`以使用正确的Qt版本和编译器环境。
|
2月前
|
Windows Python
python获取windows机子上运行的程序名称
python获取windows机子上运行的程序名称
|
1月前
|
安全 API C#
C# 如何让程序后台进程不被Windows任务管理器强制结束
C# 如何让程序后台进程不被Windows任务管理器强制结束
63 0
|
2月前
|
安全 网络安全 API
基于WMI更新Windows系统信息采集程序sysInfo的一些收获
基于WMI更新Windows系统信息采集程序sysInfo的一些收获
|
2月前
|
小程序 Windows
MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障
MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障

推荐镜像

更多