Qt使用windeployqt工具实现程序打包发布方法

目录
  • 1. Qt Widgets Application
  • 2.Qt Quick Application

Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。

以官方 Qt 5.4.0+MinGW 开发环境为例,windeployqt工具在 %QTDIR%\Qt5.4.0\5.4\mingw491_32\bin 目录下,其中 QTDIR 是 Qt 的安装目录,是环境变量。

在集成开发环境 QtCreator 中可选择 “Qt Widgets Application” 或 “Qt Quick Application” 两种方式生成图形界面应用程序。

下面分别介绍这两种方式创建应用的发布方式。

1. Qt Widgets Application

首先用 QtCreator 新建一个 Qt Widgets Application 项目,直接用默认的 QMainWindow 程序就可以了,项目名字假定是 hellomw。

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

生成的程序运行正常之后,找到项目的生成目录,比如 项目源码路径:C:\QtPros\hellomw\ 。
它的项目生成目录是 C:\QtPros\build-hellomw-Desktop_Qt_5_4_0_MinGW_32bit-Release\ 。
进入这个文件夹,在进入它的子文件夹 release 里面,找到 hellomw.exe,将这个exe 复制到一个新的单独的文件夹里用于发布,比如存到 D:\hellomw\ 文件夹里面。

然后从开始菜单打开 Qt 命令行,输入命令:cd /d D:\hellomw
然后使用 Qt安装目录(如D:\Qt\5.15.0\msvc2019\bin)的windeployqt 工具命令:D:\Qt\5.15.0\msvc2019\bin\windeployqt hellomw.exe

然后可以在 D:\hellomw 文件夹里看到 windeployqt 工具自动复制的插件文件夹和 dll文件、qm文件。这时候得到的就完整的 exe 程序发布集合,依赖关系都解决好了。
把 D:\hellomw 文件夹 打包就可以发布了,不用自己一个个找 dll 文件了。D:\hellomw 文件夹里的qm文件是多国语言翻译文件,不需要可以删了,其他的都保留。

2.Qt Quick Application

首先用 QtCreator 新建一个 Qt Quick Application 项目,直接用默认的项目模版,点击下一步生成项目,项目名字假定是 helloqml。
然后以 Release 方式编译生成 exe 程序:

然后找到项目的构建目录,比如项目源码目录 C:\QtPros\helloqml 。
它的构建目录是:C:\QtPros\build-helloqml-Desktop_Qt_5_4_0_MinGW_32bit-Release\ 。
进入这个目录,再进入 release 子文件夹,找到 helloqml.exe ,复制到一个新的单独的文件夹里面,比如 D:\helloqml\ 文件夹里面。

然后从开始菜单打开 Qt 命令行,进入D:\helloqml\文件夹:cd /d D:\helloqml
然后使用 windeployqt 工具命令:windeployqt helloqml.exe --qmldir C:\Qt\Qt5.4.0\5.4\mingw491_32\qml

注意不要跟完全一样照抄上条命令!–qmldir 是指出 Qt 库里面的 qml 文件夹位置,上面命令里 C:\Qt\Qt5.4.0 是 Qt 官方开发环境安装的文件夹,C:\Qt\Qt5.4.0\5.4\mingw491_32 是Qt类库的目录(QTDIR),因此使用的 --qmldir 后面写的是 C:\Qt\Qt5.4.0\5.4\mingw491_32\qml ,读者Qt环境安装路径不一样,要根据实际情况修改!

然后可以看到 D:\helloqml 文件夹里有一大堆文件,就是 QtQuick程序需要的依赖文件。将整个 D:\helloqml 文件夹 打包就可以发布出去,在别的电脑上使用。
这个 D:\helloqml 文件夹里的东西很多,看不懂就不要删,老老实实打包发布就行了。

上面是最简单的程序发布,实际复杂程序可能还带一些图片文件、数据库文件、配置文件之类的,可以按自己需要添加这些文件到发布文件夹里面。

到此这篇关于Qt使用windeployqt工具实现程序打包发布方法的文章就介绍到这了,更多相关Qt程序打包发布内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决Ubuntu下使用linuxdeployqt打包Qt程序问题

    写了点Qt界面程序,然而发现很难移植到其他没有安装Qt环境的电脑上运行.查资料了解到,在windows上有windowsdeployqt程序,linux上有linuxdeployqt可以帮助我们快速打包. 1. 配置Qt环境 首先,我们先把Qt环境配置好,在~/.bashrc中加入: export PATH=/home/xl/Qt5.9.2/5.9.2/gcc_64/bin:$PATH export LD_LIBRARY_PATH=/home/xl/Qt5.9.2/5.9.2/gcc_64/li

  • 使用pyinstaller打包python PyQt5程序

    目录 准备 工具准备 源代码准备 打包 参数说明 针对PyQt应用的改进 目前的小问题 解决办法 再次打包 代码仓库说明 当你有打包你的python应用的需求以后,你可能会像搜索引擎寻求帮助,你或许曾经搜索过"python 转 exe","python打包"等等这样的字眼,你或许曾看到过各种各样的相关解决方案,本文介绍的是其中的一种,但是可以负责任的说,这是目前最好的方案,并且是跨平台最好的方案,也就是说使用这个叫pyinstaller的工具,你可以把同样的代码打包

  • 使用pyinstaller打包PyQt4程序遇到的问题及解决方法

    python pyinstaller pyqt4 打包 QWindows 最近在做课设,用pyqt设计界面.然后用pyinstaller打包程序后,双击运行却总是闪退,后来将exe文件拖到cmd窗口运行,提示错误信息为 This application failed to start because it could not find or load the Qt platform plugin "windows". 废话不多说直接上解决办法. 进入你安装pyqt的路径,找到 ./pl

  • Qt使用windeployqt工具实现程序打包发布方法

    目录 1. Qt Widgets Application 2.Qt Quick Application Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行.因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe. 以官方 Qt 5.4.0+MinGW 开发环境为例,windeployqt工具在 %QTDIR%\Qt5.4.0\5.4\mingw491_32\bin 目

  • Qt5.9程序打包发布的实现

    目录 编译工程 运行windeployqt 添加必要的库 遇到的一个问题 (Windows平台)Qt编译的程序如何在其他没有安装Qt的电脑上运行呢,本文将告诉你答案 编译工程 这里拿官方的一个例程作为目标工程,选择 Release 的方式编译工程, 编译完成后,程序自动运行(如下图),找到可执行文件的位置(可在项目构建目录中查找), 将可执行文件单独复制出来,放在一个空文件夹中, 此时该文件是无法运行的,如果这是一个C或C++程序,是可以直接运行的,除非你没有把Qt关键的库加到环境变量(如果要在

  • Python程序打包工具py2exe和PyInstaller详解

    前言 通常执行 python 程序要有相应的 Python 环境,但某些特定场景下,我们可能并不愿意这么麻烦的去配置这些环境(比如将写好的脚本发给客户进行操作),如果可以提前将程序打包成 Windows平台的 .exe 文件或者是Linux下的 .sh 脚本,那么使用起来就会方便很多,py2exe 和 PyInstaller 这两款工具都是干这么个事的,下面以 hello.py 脚本(代码内容如下)为例进行介绍. age = input("How old are you?\n") pr

  • java程序打包成exe与jar的图文教程

    Java程序打包 1.java工程源码打包成jar包 选中工程,右键选择export... 选择Runnable JAR file (1)launch configuration 启动配置,java程序的启动类,如果工程没有生成类,先执行"选中工程--run as---Java Application " (2)Export Destination 输出文件名称,要生成的jar文件 2.jar包转换成.exe 使用exe4j4.0将jar生成exe执行文件 破解的exe4j4.0可在下

  • 打包发布Python模块的方法详解

    前言 昨天把自己的VASP文件处理库进行了打包并上传到PyPI,现在可以直接通过pip和easy_install来安装VASPy啦(同时欢迎使用VASP做计算化学的童鞋们加星和参与进来), VASPy的GotHub地址:https://github.com/PytLab/VASPy VASPy的PyPI地址:https://pypi.python.org/pypi/vaspy/ 由于自己的记性真是不咋地,怕时间久了就忘了,于是在这里趁热打铁以自己的VASPy程序为例对python的打包和上传进行

  • VS2012 程序打包部署图文详解

    程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因微软没有将打包工具集成在开发环境中,但是我知道总会有解决办法的.     经过翻阅资料发现,VS2012虽然没有集成打包工具,但它为我们提供了下载的端口,需要我们手动安装一个插件InstallShield.网上有很多第三方的打包工具,但为什么偏要使用微软提供的呢?因为最原始的也是最高级的,万变不离其宗. 一..NET程序部署机制     上篇博客稍微总结了下.NET程序的编译机制,下面了

  • Pyinstaller 打包发布经验总结

    使用Pyinstaller打包Python项目包含了大量的坑,这篇文章总结实践得到的Pyinstaller打包经验.本文的例子为Python3.6代码,Pyinstaller3.4,在windows下打包为64位和32位版本. Pyinstaller基本使用方法 Pyinstaller可以通过简单的命令进行python代码的打包工作,其基本的命令为: pyinstaller -option xxx.py options的详情可参考官方帮助文档https://pyinstaller.readthe

  • 详解JFX11+IDEA跨平台打包发布的完美解决办法

    1 概述 IDEA2020.1的文档中提到只有JFX8的工程才支持打成jar包,并且,如果直接使用Build Artifacts的话,会如下提示: IDEA文档有提到这个的解决办法,是使用一些第三方工具.里面介绍了通过IDEA结合自身/Maven/Gradle打包发布JFX11以上版本的方法.但是,不足的地方有: 直接创建JFX工程默认只有一个src目录,不像Maven工程还带有resources与test,给管理资源文件以及外部依赖造成了困难,getClass().getResource()会

  • 使用jenkins一键打包发布vue项目的实现

    jenkins的安装 Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件. Jenkins 支持各种运行方式,可通过系统包.Docker 或者通过一个独立的 Java 程序. 安装 这里的操作系统为WSL Ubuntu,其它系统的安装的请参考jenkins官方文档 wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo de

  • PyQt5 关于Qt Designer的初步应用和打包过程详解

    目录 Qt Designer的介绍 1. 缘由 2. 搭建 2.1. 安装 2.2. 打开 2.3. 设计 2.4. 转换 3. 效果 3.1. 引用 3.2. 启动 3.3. 打包 3.4. 触发 Qt Designer的介绍 在PyQt中编写UI界面可以直接通过代码来实现,也可以通过Qt Designer来完成.Qt Designer的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现了开发的便捷.Qt Designer中的操作方式十分灵活,其通过拖拽的方式放置控件可以随时查看控件效果

随机推荐