【Qt问题】windeployqt如何提取Qt依赖库

Qt Windows打包三步法:windeployqt+Enigma+Inno实战指南 Qt桌面应用在Windows平台的可执行性依赖于动态链接库(DLL)的完整部署,其本质是C++原生生态下的运行时依赖管理问题。原理上需解决Qt模块、插件路径、平台抽象层(QPA)及第三方库的协同加载;技术价值在于实现‘双击即用’的交付可靠性,规避‘本地能跑、别人打不开’的典型故障;典型应用场景涵盖医疗设备控制、工业人机界面、金融终端等对部署鲁棒性要求严苛的领域。本文聚焦Qt Windows发布核心链路——windeployqt自动提取依赖、Enigma Virtual Box单文件封装、Inno Setup 阅读详情

往期回顾

【Qt问题】Qt Creator 如何链接第三方库-优快云博客

【Qt问题】Qt 如何带参数启动外部进程-优快云博客

【Qt问题】VS2019 Qt win32项目如何添加x64编译方式-优快云博客

 【Qt问题】windeployqt如何提取Qt依赖库

考虑这个问题主要是:当我们的程序运行好之后,拿给别人用的时候,需要提取一些Qt的依赖库,此时如果靠自己去手动复制这些dll,很可能出错,所以qt官方给了一个工具帮我们做这个事情。

具体实现步骤如下:

1、先选择Release运行项目

先运行项目,注意此时不用再以Debug编译运行,而是选择Release

补充:debug和release版本编译运行的不同 

Release版本Debug版本
性能差异:Release版本通常会进行优化,以提高程序的性能和运行速度。相比之下,Debug版本通常包含更多的调试信息,可能会牺牲一些性能以便于调试和跟踪问题。
编译标志:Debug版本通常会包含调试信息、关闭优化等设置,而Release版本则会启用优化和去除调试信息。
输出文件:Debug版本的输出文件通常包含调试信息而Release版本的输出文件则会进行优化以提高性能。
运行行为:Debug版本包含更多的调试信息,可能会占用更多的内存和磁盘空间。Release版本则更适合最终部署和发布,因为它们通常具有更好的性能和较小的体积

一般来说:

Debug版本适用于开发和测试阶段,能够提供更多的调试信息和便于定位问题;而Release版本适用于性能优化、部署和发布阶段,能够提供更好的性能和用户体验。 

2、查看生成的release文件

此时项目目录下会生成一个release文件夹,build-10_1_QProcess-Qt_5_15_2_msvc2019-Release

打开运行后生成的release文件夹,此时里面会有一个exe程序,此时运行估计是会报错的,

我这里双击直接运行成功是因为我之前已经打包过了:

 3、添加系统变量

找到windeployqt.exe路径,添加到系统变量,一般是在版本的bin目录下。

4、单独存放生成的exe程序

回到release文件夹,把生成的exe程序拿出来,单独放到一个文件夹里 

然后在该文件夹运行cmd,输入命令:windeployqt  项目名

我这里是:windeployqt  10_1_QProcess.exe

 

运行windeployqt可能遇到如下警告

Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not set 

解决办法:

新建环境变量:VCINSTALLDIR
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC 

 

此时就会发现文件夹里生成了我们需要的一堆依赖文件

 

5、验证是否打包成功

最后,把这个文件夹发给别人,如果他们电脑上没有qt环境,也可以运行,说明打包成功。


有用的打包知识又增加了~   

关于Qt程序打包后运行库依赖的常见问题分析及解决方法 (1)找不到程序所依赖的Qt库 /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: version `Qt_5' not found (required by ./运行程序名) (2)Could not Load the Qt platform plugin "xcb" in "" even though it was found 直接提示段错误即segmentation fault,或者Illegal instruction (core dumped) 非法指令 阅读详情

相关推荐

【Qt依赖库】Linux 环境下 Qt 可执行程序依赖库打包脚本

文章目录Linux 环境下 Qt 可执行程序依赖库打包脚本一、利用 ldd 命令查看程序需要的依赖库二、编写依赖库打包脚本三、总结 Linux 环境下 Qt 可执行程序依赖库打包脚本 使用 Qt Creator 完成程序编码之后,虽然会在 Debug 或 Release 文件下生成可执行程序,但是他们是依赖 Qt Creator 环境的,拷贝到别的机器上就会提示加载依赖库错误。 那么该如何解决呢...

问题不大 1万+

QT项目生成相关依赖库

通过QT自带的工具,生成exe执行文件的所有QT相关的依赖库

weixin_43913255的博客 1481

windeployqt 打包出错原因及解决

使用 windeployqt 打包发布 qt 程序时,在某些情况下会遇到程序在本机上可以运行,但是到了其它机器上却显示缺少各种 dll 文件的问题。研究了一下这个问题,详细记录在这里。 背景 windeployqt 说白了只是一个依赖文件的自动复制工具,本质上是先检测目标 exe 文件需要哪些依赖库,再将这些库文件复制到目标路径。 问题 在一些教程中(如这一篇百度搜索结果中的前排教程),推荐将 windeployqt.exe 所在目录(即 qt bin 目录)添加到系统环境变量 PATH 中,然后直接在 c

Hsin96的博客 7839

Qt 打包发布(自定义Cmd提取依赖)

Qt 打包发布:自定义Cmd提取依赖,打包成单独exe

西门se的博客 1022

Qt 工具 windeployqt 自动打包 exe 程序

Qt 打包知识点,一定要注意 32位和64位 的区别,还有 Release 和 Debug 的区别呀,朋友~

黔家仔的博客 3110

Qt查找依赖库的简单方法

这篇是Qt在pro中添加依赖库的简单方法的前传,在Qt生成可执行文件exe后,需要知道该exe依赖哪些库文件。 这里用Qt7.0 VS2015版本举例说明。 在D盘根目录新建一个最简单的Qt Widgets Application,名为test。将构建选项设置为release,并构建。在D:\test\release目录中生成test.exe。 一.使用DEPENDS查找依赖库 这是最

草上爬的博客 2万+

windows发布qt程序依赖库qtwindows qtcore qtwidgets等的终极解决方案

先给出答案: 利用windeployqt.exe解决,windeployqt.exe的位置在qt的vs插件的bin目录下。 原因: 采用qt开发windows桌面程序,由于qt已经安装在了系统路径下,所以在开发的机器上是不会出现找不到依赖库问题的。但是,当我们打包之后,放到客户机上,客户是肯定不会为了用你的程序,去安装一个完整的qt,而且版本还需要和你开发时候使用的一模一样。所以,就需要我们...

jigetage的专栏 1542

银河麒麟V10新特性解析:从安装到AI应用的全面指南

本文全面解析银河麒麟V10操作系统的新特性,从安装指南到AI应用开发,详细介绍了其智能调度引擎、神经网络加速和场景化AI工具集等核心功能。通过实战案例展示如何高效配置AI环境、优化性能,并解决常见问题,助力开发者在国产操作系统上实现高效AI开发与应用部署。

seed的博客 302

QT软件打包发布,踩坑记录

一、过程概述 QT 构建出来的exe文件,依赖系统内散落在各处的dll文件,我们把需要的dll文件提取出来,然后打包、生成安装文件。下面的介绍,以生成64位应用为例,生成32位的过程同理。 生成 release 版本的exe 文件; 利用官方的windeployqt.exe 生成exe文件的所有依赖文件。 利用inno setup 制作安装包。 二、生成release版本的exe文件 我们构建工程时,可以选择Debug 和 Release 两种方式,由于Debug 版本携带了大量的调试信息,这些调试信息

gdut_liujiangyi的专栏 4731

保姆级教程:用SAP PS管理电梯/大型设备项目(ETO/ATO模式)从成本收集到开票结算

本文详细解析了SAP PS模块在ETO/ATO项目中的全流程成本管理实践,特别针对电梯/大型设备制造行业。从成本收集到开票结算,通过WBS元素、网络活动等核心架构设计,结合F-02、CJ20N等事务代码,实现设计、生产、物流及现场服务各阶段的精准成本控制,助力企业提升项目利润率与财务效率。

weixin_30444105的博客 457

基于Codex平台构建AI技能:抖音爆款分析与带货视频生成实战

这次我们来看一个基于 Codex 平台构建 AI 技能(Skill)的实战项目。核心目标很直接:利用 AI 能力,自动化分析抖音平台的爆款内容,并生成可用于带货的视频。这听起来像是内容创作领域的“自动化流水线”,它解决的核心痛点是:人工分析爆款、撰写脚本、制作视频的效率瓶颈。 对于技术开发者和内容创作者而言,这个项目的价值在于将“内容策略分析”和“视频内容生成”两个环节通过 Codex 的 Skill 机制串联起来,形成一个可定制、可批量执行的自动化工作流。我们最关心的几个问题包括:这个方案的技术门槛高不高

weixin_29054399的博客 486

C++ Qt 学习(十):Qt 其他技巧

C++ Qt 学习(十):Qt 其他技巧

qq_42994487的博客 780

Western blot (WB) 灰度分析进阶指南:ImageJ 高效定量技巧与实战优化

本文详细介绍了使用ImageJ进行Western blot灰度分析的进阶技巧,包括批量处理、背景校正和疑难条带处理等实战优化方法。通过自动化宏脚本和动态背景校正,显著提升分析效率和准确性,特别适合科研人员处理复杂WB数据。

weixin_42557830的博客 901

Qt打包程序 windeployqt

Qt打包程序windeployqt (适用于Windows平台) 分享 Qt 程序(项目)的方式无非两种,要么直接分享程序的源代码,要么分享程序生成的可执行文件。 和直接分享源码相比,大多数人会选择后者。但遗憾地是,Qt Creator 默认以动态链接的方式生成可执行文件,该文件无法独立运行,必须为其提供所需的动态链接库。也就是说,只分享 Qt Creator 生成的可执行文件是不行的,必须将运行所需的动态链接库一起分享,可执行文件才能在他人的电脑上正常运行。 对 Qt 程序进行打包,指的就是找到可执

console的博客 5168

数字IC后端实战:OCC电路时钟树综合的5个关键技巧(附Synopsys工具配置)

本文深入探讨了数字IC后端设计中OCC电路时钟树综合的实战技巧。针对工具自动平衡导致的绕线拥塞和时序问题,文章提出了分段处理的核心思路,并详细阐述了通过物理隔离、分段长树策略以及Synopsys工具链(如ICC2、PrimeTime)的精准配置来优化function clk与occ clk路径的关键方法,旨在提升时序收敛性和可制造性。

jwt8token的博客 858

ros入门(八)---TF坐标转换

TF(TransForm),就是坐标转换,包括了位置和姿态两个方面的变换。

weixin_51157015的博客 3389

Qt windeployqt 打包的Qt动态库介绍

在 Windows 平台,通常使用 Qt 的工具将可执行文件的相关 Qt 依赖项部署到当前路径下。组件文件名可执行文件Qt Windows 平台插件Qt Windows Vista 风格的插件Qt 核心模块Qt GUI 模块Qt6Gui.dllQt Widgets 模块根据应用程序使用的功能,可能需要其他插件 (:SVG 图标支持qgif.dll:提供对 GIF 图像格式的支持。qicns.dll:提供对 ICNS 图像格式的支持。qico.dll:提供对 ICO 图像格式的支持。

L-Super的博客 2371

【硬件工程师面经整理18_Smith圆图】

若文中任何内容侵犯了您的合法权益,请相关权益人及时与我联系,我将立即进行核实并采取适当措施,包括但不限于删除相关内容或更新文章以消除影响。**在Smith圆图上,源阻抗表示为圆心,而负载阻抗表示为圆图上的一个点。具体来说,通过将负载阻抗在Smith圆图上移动到特定位置,使其与传输线特性阻抗形成纯电阻或纯电抗的组合,从而实现匹配。例如,反射系数表示为Smith圆图上的一个点,而驻波比则表示为圆图上两个点之间的距离。Smith圆图是用于阻抗匹配和网络分析的工具,它是一种将复阻抗表示为坐标的图形。

LeeYLong的博客 652

Qt程序打包发布保姆级教程:使用 windeployqt 工具

本文详细介绍了使用Qt自带的windeployqt工具打包发布Qt程序的完整流程。首先需切换编译模式为Release,创建独立的发布文件夹;然后通过Qt专用命令行执行windeployqt命令自动提取依赖库,针对QML项目还需指定源码路径;最后验证运行并清理冗余文件。文章还解答了常见问题,如位数混淆导致的启动错误,并建议使用Enigma Virtual Box将多个文件封装为单文件。该教程能帮助开发者快速完成Qt程序的部署发布。

欢迎来到我的优快云个人博客主页! 4930

Kriging克里金模型实现数据回归预测Matlab代码

Kriging克里金模型实现数据回归预测Matlab代码

天天酷科研的博客 605

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

windeployqt指令打包Qt程序依赖库

一、问题描述: 编写完Qt程序后需要打包时,往往会需要许多的依赖库,一个一个找肯定是太浪费时间,这时候只需要使用windeployqt指令打包Qt程序依赖库即可。二、使用方法: 1、先建一个文件你想打包进去的文件夹,并把Qt应用程序放进去。 2、在开始菜单中选择你使用的Qt版本并打开cmd指令对话框。 3、使用windeployqt + 打包程序的路径打包即可。三、图形示例:1、开始菜单中选

ISmileLi的博客 1090

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Qt:windeployqt 打包实战与常见依赖库缺失问题解析

本文深入解析Qt桌面应用使用windeployqt工具打包时常见的依赖库缺失问题,特别是因Anaconda等环境变量冲突导致的工具“迷路”现象。文章提供了从标准打包流程到环境冲突排查的实战指南,并分享了处理VC++运行时库、第三方库及跨平台打包等进阶技巧,帮助开发者彻底解决程序分发难题。

9o8p7i6u5y的博客 424

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Qt windeployqt打包分析

Qt程序打包一般流程: 开始菜单 - 打开Qt对应编译器命令行 - 输入`windeployqt test.exe`命令 那么,这个过程经历了什么呢?这个就是今天要分析的主题。

L-Super的博客 2180

Qt程序打包发布方法(使用官方提供的windeployqt工具)

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

lxj434368832的博客 12万+

windeployqt发布QT程序

我们使用QT制作GUI软件,最终的目的是脱离开发环境,拿到其他电脑上运行使用。程序构建完毕,会在工程目录下生成一个exe可执行文件(windows平台为exe,linux为可执行文件)。而这个可执行文件一般是无法独立运行的(静态编译除外),还必须将exe所依赖的dll库及运行环境同exe文件打包才能运行。 在window中,QT提供了一个打包工具windeploy......

fangye945a的博客 1724

QML程序依赖库dll提取和打包分发

在开发基于QML的应用程序时,编译后的可执行文件(exe)会依赖于一系列的动态链接库(dll)。为了确保程序在不同环境下的正常运行,或者为了对程序进行进一步的分析和优化,提取这些依赖的动态库是非常必要的。通过以上步骤,你可以将QML编写的exe及其依赖的动态库打包成一个专业的安装程序,方便用户进行安装和使用。同时,Inno Setup的灵活性也允许你根据需要进行各种定制化设置。它可以帮助开发者轻松地将应用程序及其依赖文件打包成一个安装包,方便用户进行安装和卸载操作。

Zy100Papa的博客 1295
上一篇: Qt模型视图代理之QListView使用的简单介绍
下一篇: 一文详细解析Google编码规范工具cpplint的下载安装与使用
从一的
博客等级 码龄5年 1995粉丝 213原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值