当前位置: 首页 > 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
在这里插入图片描述

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

在这里插入图片描述

二、参考

拿起键盘就是撸
龚建波

相关文章:

Qt windeployqt.exe 打包qml

Qt系列文章目录 文章目录Qt系列文章目录前言一、遇到的坑二、参考前言 我们在QtCreator下面开发程序,一般都会遇到工程发布给客户使用的情况。我们通常会使用Qt自带的打包工具:windeployqt.exe。 windeployqt.exe是Qt自带的工具,用于创建应用…...

【人脸识别】CurricularFace:自适应课程学习人脸识别损失函数

论文题目:《CurricularFace: Adaptive Curriculum Learning Loss for Deep Face Recognition》 论文地址:https://arxiv.org/pdf/2004.00288v1.pdf 代码地址:https://github.com/HuangYG123/CurricularFace 建议先了解下这篇文章&#xff1a…...

springmvc之rest风格(RESTFUL)

目录 一、介绍 1.什么是REST? 2.REST的实质 3.REST风格的优点 4.REST风格的缺点 3.什么是RESTful? 二、代码理解 一、介绍 1.什么是REST? 答:REST(Representational State Transfer) ,表现形式转…...

django项目实战十四(django+bootstrap实现增删改查)进阶混合数据使用modelform上传

目录 一、启用media 1、URL设置 2、settings.py配置 二、url 三、upload.py 新增upload_modelform方法 四、form.py新增UpModelForm 五、创建city表 六、创建city_list.html 接上一篇《django项目实战十三(djangobootstrap实现增删改查)进阶混合数据f…...

2023年CDGA考试模拟题库(1-100)

2023年CDGA考试模拟题库(1-100) 1.以下哪种活动中 ,混淆是不足以保护数据 的?[1分] A.数据共享 B.数据转换 C.数据脱敏 D.以上都正确 答案C 2.关于受控词表描述不正确的是?[1分] A.系统地组织文件档案和内容离不开受控词表 B.受控词表的一个例子是用于出版物分类的都…...

HTML常用基础内容总结

文章目录一、对HTML的感性认知前置知识什么是web前端,什么是web后端前端技术栈、后端技术栈开发与运行的区别浏览器的功能是什么简介写一个简单可运行的的html代码前端开发方式二、VSCode的简单使用三、常用的HTML标签最最基本的HTML结构HTML代码特点注释标签标题标…...

Gorm-学习笔记

1 基本使用 2 创建数据 2.1 如何使用Upsert 使用clause.OnConflict处理数据冲突 2.2 如何使用默认值 通过使用default标签为字段定义默认值 3 查询数据 3.1 First与Find 使用First时,需要注意查询不到数据会返回ErrRecordNotFound。 使用Find查询多条数据&#x…...

【Neo4j】图数据库CypherQueryLanguage随笔

CQL语言随笔 一、Cyther关系描述 如图&#xff1a;唐僧&#xff0c;孙悟空&#xff0c;白骨精三者的关系图&#xff1a; Cypher语言描述他们的关系&#xff1a; (孙悟空)<-[:赶走]-(唐僧)-[:被骗]->(白骨精)-[:被打死]->(孙悟空) 二、CQL语言的使用案例 创建结点…...

STM32Cube串口USART发送接收数据

本文代码使用 HAL 库。 文章目录前言一、USART 同步/异步串行接收/发送器二、USART 原理图三、CubeMX 创建工程四、usart.c 文件解析五&#xff0c;设计实验&#xff1a;在 串口输入字符点亮led实验现象&#xff1a;总结前言 这篇文章介绍 实现 USART 异步模式下 通过 串口助手…...

OpenFeign详解

OpenFeign是什么&#xff1f; OpenFeign&#xff1a; OpenFeign是Spring Cloud 在Feign的基础上支持了SpringMVC的注解&#xff0c;如RequesMapping等等。OpenFeign的FeignClient可以解析SpringMVC的RequestMapping注解下的接口&#xff0c;并通过动态代理的方式产生实现类&am…...

python多线程网络编程

背景 使用过flask框架后&#xff0c;我对request这个全局实例非常感兴趣。它在客户端发起请求后会保存着所有的客户端数据&#xff0c;例如用户上传的表单或者文件等。那么在很多客户端发起请求时&#xff0c;服务器是怎么去区分不同的request对象呢&#xff1f;当查看了大量的…...

BFS-走迷宫

题目描述 给定一个 NM 的网格迷宫 G。G 的每个格子要么是道路,要么是障碍物(道路用 1 表示,障碍物用 0 表示)。 已知迷宫的入口位置为 (x1,y1),出口位置为 (x2...

【蓝牙mesh】Lower协议层介绍

【蓝牙mesh】Lower协议层介绍 Lower层简介 Lower协议层用于处理网络层以下的功能&#xff0c;包括节点的广播、重传、路由和网络拓扑等&#xff0c;是实现蓝牙mesh网络的关键协议之一。其中Lower协议层中最主要的一部分工作就是mesh数据的分片和组包。 Lower层是将Upper层发过…...

Java-重排序,happens-before 和 as-if-serial 语义

目录1. 如何解决重排序带来的问题2. happens-before1. 如何解决重排序带来的问题 对于编译器&#xff0c;JMM 的编译器重排序规则会禁止特定类型的编译器重排序。对于处理器重排序&#xff0c;JMM 的处理器重排序规则会要求编译器在生成指令序列时&#xff0c;插入特定类型的内…...

Nginx安装及介绍

前言&#xff1a;传统结构上(如下图所示)我们只会部署一台服务器用来跑服务&#xff0c;在并发量小&#xff0c;用户访问少的情况下基本够用但随着用户访问的越来越多&#xff0c;并发量慢慢增多了&#xff0c;这时候一台服务器已经不能满足我们了&#xff0c;需要我们增加服务…...

【华为OD机试模拟题】用 C++ 实现 - 寻找路径 or 数组二叉树(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 获得完美走位(2023.Q1) 文章目录 最近更新的博客使用说明寻找路径 or 数组二叉树题目输入输出描述示例一输入输出示例二输入输出Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过…...

LINUX学习记录

回顾系列&#xff1a;两天的时间&#xff08;2023.2.24-2023.2.25&#xff09;重新学了遍Linux基础课&#xff0c;收获非常多&#xff0c;以前只会一些简单的Linux命令&#xff0c;对shell&#xff0c;git&#xff0c;管道&#xff0c;复杂Linux命令都不熟悉&#xff0c;学完之…...

华为OD机试用Python实现 -【狼羊过河 or 羊、狼、农夫过河】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲狼羊过河 or 羊、狼、农夫过河题目描述输入描述输出描述说明示例一输入输出说明Python 代码实现代码实现思路华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址…...

【SAP Abap】X-DOC:SAP ABAP 语法更新之Open SQL

SAP ABAP 语法更新之Open SQL1、前言2、演示1、前言 自从 SAP 推出 SAP ON HANA&#xff0c;与之相随的 AS ABAP NW 7.40 版本以后&#xff0c;ABAP 语法也有了较多的更新&#xff0c;本篇对 Open Sql的语法更新部分做一个DEMO演示。 NW 7.40 以前 OpenSQL 的限制&#xff1a…...

leetcode 困难 —— 数组中的逆序对(分治法)

题目&#xff1a; 在数组中的两个数字&#xff0c;如果前面一个数字大于后面的数字&#xff0c;则这两个数字组成一个逆序对。输入一个数组&#xff0c;求出这个数组中的逆序对的总数。 题解&#xff1a; ① 我最开始想的蠢方法&#xff08;会超时&#xff0c;可跳过&#xff…...

BilibiliDown:让音乐爱好者实现Hi-Res音频提取的全流程方案

BilibiliDown&#xff1a;让音乐爱好者实现Hi-Res音频提取的全流程方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirr…...

IDEA全局替换不够用?试试这个Java脚本,精准处理多模块项目文件内容替换

IDEA全局替换不够用&#xff1f;试试这个Java脚本&#xff0c;精准处理多模块项目文件内容替换 在大型Java项目中&#xff0c;我们经常需要批量修改代码中的某些字符串或配置。虽然IntelliJ IDEA提供了"Replace in Path"功能&#xff0c;但在实际企业级开发中&#…...

别再为小Batch Size发愁了!手把手教你用Group Normalization稳定训练你的PyTorch模型

别再为小Batch Size发愁了&#xff01;手把手教你用Group Normalization稳定训练你的PyTorch模型 当你在训练深度学习模型时&#xff0c;是否遇到过这样的困境&#xff1a;由于GPU显存限制&#xff0c;只能使用较小的batch size&#xff0c;结果模型训练变得极不稳定&#xff…...

基于ROS的语音控制机器人(一):从零搭建多模态交互系统

1. 从零搭建ROS语音控制机器人的核心思路 第一次接触ROS机器人开发时&#xff0c;我被其分布式架构深深吸引。想象一下&#xff1a;你对着电脑说"前进"&#xff0c;树莓派就能驱动小车移动&#xff1b;喊"打开摄像头"&#xff0c;机器人立即开启视觉识别—…...

低门槛AI视频生成新选择:opensora-hpcai本地部署与优化指南

低门槛AI视频生成新选择&#xff1a;opensora-hpcai本地部署与优化指南 【免费下载链接】opensora-hpcai-1_0_ms MindSpore implementation of OpenSora, an open-source project that aims to foster innovation, creativity, and inclusivity within the field of content cr…...

收藏!阿里放大招成立ATH事业群,AI月薪6W+,小白/程序员入局正当时

近日&#xff0c;据行业网友爆料&#xff0c;阿里近期迎来AI领域重大动作——正式组建Alibaba Token Hub&#xff08;简称ATH&#xff09;事业群&#xff0c;由集团CEO吴某铭亲自挂帅带队&#xff0c;其核心战略目标十分明确&#xff0c;浓缩为一句话就是&#xff1a;创造Token…...

3大核心功能构建反检测浏览器:Camoufox实战指南

3大核心功能构建反检测浏览器&#xff1a;Camoufox实战指南 【免费下载链接】camoufox &#x1f98a; Anti-detect browser 项目地址: https://gitcode.com/gh_mirrors/ca/camoufox 在当今数据驱动的时代&#xff0c;网站反爬虫系统日益严苛&#xff0c;传统浏览器在访问…...

多模态融合避坑手册:为什么你的跨模态模型总掉进‘语义鸿沟’?

多模态融合避坑手册&#xff1a;为什么你的跨模态模型总掉进‘语义鸿沟’&#xff1f; 当你兴奋地将精心设计的跨模态模型投入训练&#xff0c;却发现验证集指标像过山车一样剧烈波动时&#xff0c;问题往往出在那些容易被忽视的工程细节里。上周有位工程师向我展示了他的视频…...

OpenClaw性能优化:nanobot镜像响应速度提升50%

OpenClaw性能优化&#xff1a;nanobot镜像响应速度提升50% 1. 为什么需要优化nanobot镜像性能 第一次使用nanobot镜像时&#xff0c;我就被它的轻量级特性吸引——基于Qwen3-4B-Instruct-2507模型&#xff0c;却能跑在我的开发笔记本上。但实际使用中发现&#xff0c;当连续处…...

SmolVLA部署案例:树莓派5+USB GPU加速器运行SmolVLA轻量版可行性探索

SmolVLA部署案例&#xff1a;树莓派5USB GPU加速器运行SmolVLA轻量版可行性探索 1. 引言 你有没有想过&#xff0c;让一个巴掌大的树莓派也能跑起来一个能“看懂”世界、听懂指令、并控制机器人动作的AI模型&#xff1f;这听起来像是科幻电影里的场景&#xff0c;但今天我们要…...