当前位置: 首页 > news >正文

Qt windeployqt.exe 打包qml

Qt系列文章目录

文章目录

  • Qt系列文章目录
  • 前言
  • 一、遇到的坑
  • 二、参考

前言

我们在QtCreator下面开发程序,一般都会遇到工程发布给客户使用的情况。我们通常会使用Qt自带的打包工具:windeployqt.exe。
windeployqt.exe是Qt自带的工具,用于创建应用程序发布包。
简单来说,这个工具可以自动地将某程序依赖的库、资源拷贝到其所在目录,防止程序在其他电脑上运行报找不到库的错误。
windwployqt.exe官方文档

Qt for Windows-部署

本文档描述了Windows的部署过程。我们在整个文档中参考Plug&Paint示例应用程序来演示部署过程。

Windows部署工具

Windows部署工具windeployqt旨在自动化创建可部署文件夹的过程,该文件夹包含从该文件夹运行应用程序所需的与Qt相关的依赖项(库、QML导入、插件和翻译)。它为通用Windows平台(UWP)创建一个沙盒,或为Windows桌面应用程序创建一个安装树,可以轻松地将其绑定到安装包中。

该工具可在QTDIR/bin/windeployqt中找到。它需要在构建环境中运行才能正常运行。使用Qt安装程序时,应使用脚本QTDIR/bin/qtenv2.bat来设置它。

windeployqt将.exe文件或包含.exe文件的目录作为参数,并扫描可执行文件中的依赖项。如果使用–qmldir参数传递目录,windeployqt将使用qmlimportscanner工具扫描目录中的QML文件以查找QML导入依赖项。然后将识别的依赖项复制到可执行文件的目录中。

如果Qt是在关闭configure开关relocable的情况下构建的,则windeployqt将Qt5Core.dll中的硬编码本地路径替换为相对路径。

对于Windows桌面应用程序,默认情况下,编译器所需的运行时文件也会复制到可部署文件夹中(除非指定了选项–no compiler runtime)。对于使用Microsoft Visual C++的发布版本,这些版本由Visual C++可再发行包组成,这些包旨在由应用程序的安装程序在目标计算机上递归安装。否则,将使用编译器运行时的共享库。

应用程序可能需要额外的第三方库(例如,数据库库),而windeployqt没有考虑这些库。

一、遇到的坑

1.首先在QtCreator IDE中设置工程release
在这里插入图片描述

2.打包命令
我安装的是Qt5.12.9版本,打开Qt5.12.9(MSVC 2017 64-bit)
在这里插入图片描述
3.
cd到的exe路径,我的路径是:E:\work\QtWebCannelAndMap-master\obj
在这里插入图片描述
在这里插入图片描述

4.执行打包命令
D:\Qt\Qt5.12.9\5.12.9\msvc2017_64\bin\windeployqt.exe E:\work\QtWebCannelAndMap-master\obj\QtWebChannelAndMap.exe -qmldir D:\Qt\Qt5.12.9\5.12.9\msvc2017_64\qml

因为我安装了Qt5.7和Qt5.12二个版本,所有我这里指定了windeployqt.exe的路径,
因为用到了qml的组件,所以特意加了一个参数指定qml的路径:-qmldir D:\Qt\Qt5.12.9\5.12.9\msvc2017_64\qml

5.最重要的一点
这里一定要把qt安装目录下的qml复制到你的exe路径下
一定要把qt安装目录下的qml复制到你的exe路径下
一定要把qt安装目录下的qml复制到你的exe路径下
重要的事敲黑板,并说三遍,之前就是遗漏了这一步导致打包的exe无法运行
在这里插入图片描述
在这里插入图片描述

6.打包成功
执行名字:D:\Qt\Qt5.12.9\5.12.9\msvc2017_64\bin\windeployqt.exe E:\work\QtWebCannelAndMap-master\obj\QtWebChannelAndMap.exe -qmldir D:\Qt\Qt5.12.9\5.12.9\msvc2017_64\qml
在这里插入图片描述

生成很多依赖文件
在这里插入图片描述

在这里插入图片描述

二、参考

拿起键盘就是撸
龚建波

http://www.lryc.cn/news/20721.html

相关文章:

  • 【人脸识别】CurricularFace:自适应课程学习人脸识别损失函数
  • springmvc之rest风格(RESTFUL)
  • django项目实战十四(django+bootstrap实现增删改查)进阶混合数据使用modelform上传
  • 2023年CDGA考试模拟题库(1-100)
  • HTML常用基础内容总结
  • Gorm-学习笔记
  • 【Neo4j】图数据库CypherQueryLanguage随笔
  • STM32Cube串口USART发送接收数据
  • OpenFeign详解
  • python多线程网络编程
  • BFS-走迷宫
  • 【蓝牙mesh】Lower协议层介绍
  • Java-重排序,happens-before 和 as-if-serial 语义
  • Nginx安装及介绍
  • 【华为OD机试模拟题】用 C++ 实现 - 寻找路径 or 数组二叉树(2023.Q1)
  • LINUX学习记录
  • 华为OD机试用Python实现 -【狼羊过河 or 羊、狼、农夫过河】(2023-Q1 新题)
  • 【SAP Abap】X-DOC:SAP ABAP 语法更新之Open SQL
  • leetcode 困难 —— 数组中的逆序对(分治法)
  • 02.24:图片的风格转换
  • [SSD综述 1.3] SSD及固态存储技术半个世纪发展史
  • PAT 1023 组个最小数(分数20)题目有bug
  • QML 中的 5 大布局
  • 使用Python进行数据分析——线性回归分析
  • 我眼中的柔宇科技
  • Allegro如何快速把视图居中显示操作指导
  • 搜索相关功能
  • 【从零开始制作 bt 下载器】一、了解 torrent 文件
  • SystemVerilog-时序逻辑建模(5)多个时钟和时钟域交叉
  • 基本中型网络的仿真(RYU+Mininet的SDN架构)-以校园为例