Qt 5.x 应用程序 Windows 部署方法

QT使用qt.conf文件来部署应用程序 后经查证是没有macdeployqt进行部署,程序内没有平台依赖库Plugins文件Qt程序启动时会用QLibraryInfo类载入qt.conf文件, 按下面的路径顺序搜索 :资源系统, :/qt/etc/qt.confMac系统下会在资源目录, 例如:assistant.app/Contents/Resources/qt.conf执行档所在目录,如:QCoreApplication::applicationDirPath()+QDir::seperator()+”qt.conf” 阅读详情
使用 Qt 5.2.1 开发了一个程序之后,部署竟然用了我很长时间来调试。现在总算搞明白了。

1、源代码使用 UTF-8 编码格式,对于 VC++ 2010 来说,创建并引入头文件 charset.h:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #pragma once  
  2.   
  3. // VC 2010 以后,要求源码设置 UTF-8 BOM  
  4. #if defined(_MSC_VER) && (_MSC_VER >= 1600)  
  5. # pragma execution_character_set("utf-8")  
  6. #endif  

只要是源代码中使用了中文,都要引入这个头文件。

使用 UTF-8,必须使用如下 DLL:

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. icudt51.dll  
  2. icuin51.dll  
  3. icuuc51.dll  

2、必须的 DLL,比如:

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. Qt5Core.dll  
  2. Qt5Gui.dll  
  3. Qt5Network.dll  
  4. Qt5Sql.dll  
  5. Qt5Websockets.dll  
  6. Qt5Widgets.dll  
  7. ...  

3、VC++ 2010 Redistribution Package x86

4、由于 Qt 使用了 Qt 5.2.1 for Windows 32-bit (VS 2010, OpenGL, 517 MB) 这个版本,因此还需要

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. libEGL.dll  
  2. LibGLESv2.dll  
  3. D3DCompiler_43.dll  

起初不知道需要这些文件,部署后总是报 This application failed to start because it could not find or load the Qt platform plugin "windows".


还以为是插件目录的问题,折腾了好久,总是不正确,后来在 QtCreator 目录中发现这些 dll,复制过来。


5、插件配置

⑴在应用程序 app.exe 目录下创建插件子目录,类似如下目录结构:

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. ./bin/app.exe  
  2. ./bin/platforms  

将 Qt 系统目录中的相应子目录复制过来,文件包括:

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. qminimal.dll  
  2. qoffscreen.dll  
  3. qwindows.dll  
  4. ...  

⑵使用 Qt 设置库目录的 API:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. QStringList libraryPaths = QStringList()  
  2.                                << qApp->applicationDirPath()  
  3.                                << qApp->applicationDirPath().append("/plugins");  
  4. QApplication::setLibraryPaths(libraryPaths);  

或者:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. QApplication::addLibraryPath(“./plugins”);  

⑶使用资源文件 app.qrc,将 qt.conf 配置文件作为资源,加入路径 :/qt/etc/qt.conf,

Qt5Core.dll 加载时默认访问这个配置文件。


⑷使用外部 qt.conf 配置文件

qt.conf 放置于 app.exe 所在目录,内容如下:

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. [Paths]  
  2. Plugins=./plugins  

6、总结,

以上设置如果不正确,从而找不到 platforms 目录时,会报  This application failed to start because it could not find or load the Qt platform plugin "windows".这个错误。

相关文档,请参考:

http://qt-project.org/doc/qt-5/windows-deployment.html
http://qt-project.org/doc/qt-5/windows-issues.html
http://qt-project.org/doc/qt-5/deployment-plugins.html

QT环境部署 推荐用,它会自动分析 exe 依赖并打包到同目录。如果只是缺某个插件(比如qtiff.dll),可以手动放到 exe 同目录下的文件夹里。它是Visual Studio 自带的命令行工具。和普通 cmd 不同,这个命令行里已经自动配置好了编译器路径、Qt 的 MSVC 工具链环境,你直接用就能执行cl等命令。 阅读详情

相关推荐

从‘Cannot find font directory’错误,聊聊Qt 5.9.2之后字体管理机制的变迁与最佳实践

本文深入探讨了Qt 5.9.2之后字体管理机制的变迁,从Qt 4的自包含字体体系到Qt 6的现代化架构,详细解析了QFontDatabase的工作机制及跨平台适配挑战。提供了现代Qt应用的字体部署策略、疑难问题排查与性能优化技巧,帮助开发者高效处理字体问题,提升应用兼容性和性能。

weixin_42524945的博客 179

QT小技巧

1、如果在窗体关闭前自行判断是否可关闭 答:重新实现这个窗体的 closeEvent()函数,加入判断操作 void MainWindow::closeEvent(QCloseEvent *event) { if (maybeSave()) { writeSettings(); event->accept(); } else { event->ignore(); } } 2、如何用打开和保存文件对话框 答:使用QFileDialog QString file

我不是码农的博客~~~ 969

QT应用在Windows部署发布

刚接触QT,对于其在Windows部署一头雾水。网上相应的资料很多都是手工程度比较高的,在这里我们可以使用QT自带的发布工具 - windeployqt.exe。部署发布 - 解决依赖该文件在QT的安装目录下,我Windows平台使用的mingw版本(5.8),其路径为D:\Qt\Qt5.8.0\5.8\mingw53_32\bin\windeployqt.exe使用Release模式编译程序,然

pcsxk的专栏 6411

Qt 5.9.1通过qt.conf指定共享库路径部署应用程序

版本更新日志Ver 17.0822首次创建。Ver 17.08241、增加FAQ:Debug模式下无法启动应用; 2、增加示例文件及相关文件的百度云盘链接路径。1 背景介绍无论是使用Qt静态链接,或者使用Enigma Virtual Box将exe及其依赖的库进行打包均存在如下问题: 发布程序非常大; 不具备灵活性(如果程序或Qt更新,需要重新部署过程); 不能部署插件(dll); 使用Enigm

Spo.Tian 的博客 5664

Qt5 项目的构建与部署详细讲解

本文介绍了Qt5项目的两种构建方式(qmake和CMake)以及跨平台部署方法。qmake使用.pro文件定义项目结构,通过生成Makefile进行编译;CMake则采用更现代的CMakeLists.txt文件,支持跨平台构建。在部署方面,Windows推荐使用windeployqt工具自动打包依赖库,Linux建议采用linuxdeployqt生成AppImage或通过静态编译/包管理器分发。文章详细说明了各平台的构建流程和关键配置,为Qt开发者提供了完整的项目构建与发布指南。

black book发布 1190

QT5实现一个时钟桌面并打包部署

qt创建界面程序、打包部署

weixin_44753371的博客 2486

Paddle分割模型部署windows平台的QT软件中(C++)

目的:使用paddleseg开源框架训练分割模型,并将训好的模型转为C++代码,部署到已有的C++项目中,提供视觉检测模块,平台为windows10, QT5.12.8。 硬件环境: 服务器或者带有GPU的电脑,用于训练paddleseg模型; 目标部署电脑: windows10系统,QT5.12.8, VS2017,; 软件环境: CUDA11.0, cudnn8.0 模型训练电脑; Paddlepaddle, PaddleSeg, labelme(标注数据); Paddleinferen

m0_46429066的博客 2775

Windows平台QT部署全攻略:从5.14离线包到6.x在线安装的避坑指南

本文详细介绍了在Windows平台上部署QT的全流程,包括QT5.14离线版和QT6.x在线版的安装与配置。针对不同开发需求,提供了版本选择建议、离线安装避坑指南、在线安装加速方案以及环境配置技巧,帮助开发者高效完成QT部署并解决常见问题。

weixin_30919571的博客 506

QT5.9应用程序打包避坑指南:从Release编译到windeployqt一键部署

本文详细解析QT5.9应用程序打包全流程,从Release编译优化到windeployqt一键部署,提供实用避坑指南。涵盖环境配置、依赖项排查、打包优化等关键环节,帮助开发者高效解决常见部署问题,确保应用程序跨平台稳定运行。

weixin_30329623的博客 473

Windows平台QT部署全攻略:从离线5.14到在线6.x的避坑指南

本文详细介绍了Windows平台下QT部署方法,包括离线安装QT 5.14.2和在线安装QT 6.x的步骤与避坑指南。针对网络环境不稳定的用户,推荐使用离线安装;追求最新功能的开发者可选择在线安装,并提供了国内镜像加速方案。文章还涵盖了环境变量配置、组件选择策略及常见问题解决方案,帮助开发者高效完成QT部署

weixin_30797199的博客 379

Windows 10)Yolov5-5.0模型的TensorRT加速+ C++部署 + VS2019封装 dll (CMake) + Qt调用

在做一个需要目标检测的项目,使用yolov5-5.0模型,在此记录将模型部署的完整步骤,做好笔记,便于后续重复使用和学习,肝了一个多星期才完成。

qq_22487889的博客 1万+

从安装到部署Qt Visual Graph Editor在Windows、Linux和macOS上的完整配置指南

Qt Visual Graph Editor(QVGE)是一款功能强大的可视化图形编辑工具,基于Qt框架开发,支持多种图形格式和编辑功能。本指南将详细介绍如何在Windows、Linux和macOS三大主流操作系统上安装、配置和部署QVGE,帮助新手用户快速上手这款高效的图形编辑工具。 ## 📋 准备工作:环境要求与依赖项 在开始安装QVGE之前,请确保您的系统满足以下基本要求: - **

gitblog_00681的博客 999

QT5.9应用程序打包全攻略:从Release编译到一键生成可移植EXE

本文详细介绍了QT5.9应用程序从Release编译到生成可移植EXE文件的完整打包流程。通过使用windeployqt工具自动收集依赖、处理特殊情况以及高级打包技巧,帮助开发者轻松解决跨平台部署难题,实现一键生成可执行文件。

spice的博客 745

Qt工程打包,针对Windows(X86)、Linux平台(X86和ARM架构)步骤全解

本文详细介绍了Qt程序在Windows(X86)和Linux(X86/ARM)平台下的打包部署方法。针对Windows系统,使用windeployqt工具自动收集依赖库;对于Linux系统,X86架构采用linuxdeployqt工具打包,ARM架构则需交叉编译后手动收集依赖。文章提供了完整的打包步骤、环境配置方法,并针对常见问题给出了解决方案,包括依赖库缺失、GLIBC版本问题等。同时附有参考链接和实用资源下载地址,为跨平台Qt应用部署提供了全面指导。

驯龙高手_追风的博客 7101

QT5.9应用程序打包全攻略:从Release编译到windeployqt一键部署

本文详细介绍了QT5.9应用程序从Release编译到使用windeployqt一键部署的完整打包流程。针对MinGW 5.3.0 32位编译器用户,提供了环境配置、编译优化、依赖项收集及常见问题解决方案,帮助开发者高效完成QT应用程序的打包与部署工作。

r2s3t4的博客 188

qt 部署 错误_尝试在raspberry pi上部署qt5应用程序时出现奇怪的错误

我有一个项目,我按照link上的说明在Pi上本地编译和构建qt5 .我已经设法安装qt5没有问题,我甚至可以编译并运行位于qt样本上的“立方体”程序 .之后,我编译并安装了qtmultimedia子模块,这是我项目所需要的 .好的,事情看起来不错 . 然后我在Pi上克隆了我的项目,运行了qmake,之后我运行了make . 直到......我收到此错误消息:In file included fro...

weixin_31207903的博客 458

Qt5.12.9 Window及Linux平台运行环境部署(应用发布)

Qt5.12.9 多平台部署发行 系列文章目录 文章目录Qt5.12.9 多平台部署发行系列文章目录前言一、Window平台 Qt 运行环境部署二、Linux(Ubuntu)平台 Qt 运行环境部署1.下载 linuxdeployqt2.安装和查看版本总结 前言 Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架,可以实现一次编码,多平台编译部署Qt源码先由qmake生成Makefile文件,然后使用make命令进行编译,我安装的版本是Qt5.12.9,这里来记录

ldxicare的专栏 8174
上一篇: C++栈和队列
下一篇: c++模板类学习
sufangqi123
博客等级 码龄14年 44粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值