❝Qt 5.14.0版本的MinGW编译器编译的程序后,用windeployqt.exe打包依赖库报Unable to find the platform plugin错误,导致无法正常打包的问题。
1.windeployqt和nsis介绍 windeployqt是一个Qt提供的非常有用的命令行工具,用于将Qt应用程序所需的所有依赖项自动复制到应用程序的构建目录中,以便在没有Qt安装的计算机上运行应用程序 windeployqt可以自动查找并复制应用程序所需的Qt库文件、插件、QML文件以及其他依赖的库文件。 使用windeployqt非常简单。 只需在命令行中运行以下命令: # 编译好release程序后,进入对应路径 windeployqt <path_to_application> 这样就能确保应用程序能够在没有Qt安装的计算机上独立运行,
本文教你使用Qt自带工具windeployqt来进行操作。 本文字数:500,阅读时长大约:3分钟 (1)编写一个简单的程序 我们先做一个简单的窗口,添加一个图片资源文件,放置到窗口当中。 因为.exe文件对其他文件有依赖关系,可以使用windeployqt解决,发布一套完整的程序及其依赖的库文件。 (3)使用windeployqt发布程序 将myTest.exe复制到要发布的文件夹下,比如D:\myTest\下 ? 在开始菜单中找到Qt cmd 工具,打开 ? 进入到D:\myTest文件夹下,运行命令 windeployqt myTest.exe ? windeployqt会帮我们解决文件依赖关系,程序需要的库文件都生成在了文件夹中,并且资源文件也被编译到了二进制文件里。 ? 这次再运行myTest.exe,可以看到结果正常,发布结束。 ?
今天有个哥们想要测试程序,于是我就开始了使用QT自带的打包工具windeployqt.exe 开始了一通如猛虎操作,完成了打包! 02 windeployqt.exe生成打包 这个时候一定要清楚你的编译是基于MINGW的编译器还是VS的编译器,这点太重要了,以我的为例:在QT的安装目录下面有两个目录 mingw73_64msvc2017 _64 如果工程是MINGW编译的一定要选择 第一个目录下的windeployqt.exe,如果是VS编译的,比如我是VS2017的,就一定要选择第二个目录下的windeployqt.exe 工具来打包 确定了windeployqt.exe工具之后,打开cmd到windeployqt.exe工具所在目录,如下图: 然后运行命令行: windeployqt.exe D:\Qt\projects\build-yolov5
好在QT提供了windeployqt.exe程序专门用来提取相关的DLL。但是这还是有个坑,这里记录下留作以后使用注意。 windeployqt.exe的使用方法: 新建一个文件夹,把项目工程release模式下编译生成的.exe文件单独拷贝出来,放到新建的文件夹内。 在新建的文件夹内打开cmd窗口,执行命令: D:\Qt\Qt5.9.0\5.9\mingw53_32\bin\windeployqt.exe -no-angle -no-opengl-sw myapp.exe QT的打包可以用这个: D:\Qt\Qt5.10.0\5.10.0\msvc2015\bin\windeployqt.exe -no-angle -no-opengl-sw test.exe QML的应用打包 可在调用 windeployqt.exe 时加"--no-angle" 和 "--no-opengl-sw" 这两个参数。
解决方案 Qt 有一个官方打包依赖库文件的工具,windeployqt.exe,在 Qt bin 目录下,以我的为例。 C:\Qt\Qt5.8.0\5.8\msvc2013\bin 使用方法。 C:\Qt\Qt5.8.0\5.8\msvc2013\bin>windeployqt -h Usage: windeployqt [options] [files] Qt Deploy Tool 5.8.0 The simplest way to use windeployqt is to add the bin directory of your Qt installation (e.g. <QT_DIR\bin>) to the PATH variable and then run: windeployqt <path-to-app-binary> If ICU, ANGLE, etc 所在目录下,即 cd C:\Qt\Qt5.8.0\5.8\msvc2013\bin 打包命令如下: windeployqt <path-to-app-binary> 即,你需要打包的exe全路径 windeployqt
我们可以使用windeployqt,windeployqt是 Qt 提供的 Windows 平台打包工具,它能找到可执行文件需要的所有动态链接库,并将它们拷贝到当前文件夹中。 找到对应版本的windeployqt执行windeployqt 应用程序.exe,比如你的构建套件是msvc2019 64 bit,你就可以在Qt\6.2.1\msvc2019_64\bin\路径下找到 windeployqt,如果你将其配置到环境变量之中,那么你可以直接进行进入到刚才我们创建的Publish文件夹中进行执行,否则你可以进行到windeployqt路径,执行windeployqt.exe
Windows可以直接使用Qt自带的工具——windeployqt。 1. 使用脚本获取应用程序依赖库 ubuntu下收集依赖库可以使用一个简单的脚本,这相当于Windows下windeployqt的功能了。下面贴下脚本程序: #!
二、动态打包发布 2.1 打包工具 在QT5以后的版本中,Qt 的编译器安装包里自带了一个打包工具: windeployqt.exe windeployqt 工具可以自动复制插件文件夹和 dll 文件、 2.3 windeployqt.exe 工具位置 windeployqt.exe 工具在 QT 的安装目录下。 比如: MINGW 编译器: C:\app_setup\for_QtQt5.5.1\5.5\mingw492_32\bin\windeployqt.exe VS 编译器: D:\Qt\Qt5.5.0\5.5 \msvc2010\bin\windeployqt.exe 当前 QT程序 采用哪一个编译器, 就选择对应的 windeployqt.exe 程序。
下编译好的release下的 ImageProcesser.exe 拷贝到一个文件夹下面; 3、在 ImageProcesser.exe 文件路径下,输入cmd可弹出命令行窗口; 4、在命令行模式下输入windeployqt 注意:如果提示“不是内部指令”可查找Qt安装位置的bin目录下是否具有windeployqt.exe文件,若不存在需重新安装Qt软件;若存在,可执行开始菜单下的所有程序中的Qt文件下的Qt for Desktop 文件,即可实现windeployqt.exe文件添加到系统环境变量中。
,windeployqt.exe是我们今天主要讨论的工具。 这种命令行在启动时已经设置好了QT的环境变量,可以直接输入windeployqt.exe 也可以用普通的命令行,使用windeployqt.exe时带上绝对路径即可。 执行windeployqt命令 这里通过绝对路径来使用windeployqt: d:\qt\Online\5.12.4\msvc2017_64\bin\windeployqt.exe HelloDeploy.exe _64\qml 写好windeployqt命令后按回车执行 正确执行后,release文件夹下,多了很多dll,以及一些文件夹。 常见的错误处理 一般使用windeployqt,大部分库都能自动拷贝,不需要手动处理, 只有极少数情况下,windeployqt跑完,会缺失一些库,还要手动处理一下。
release中生成的.exe文件拷贝到新的文件夹中,我在这里拷贝到了d:\test\中 四、在QT安装菜单中找到QT5.8 for DeskTop工具,运行 五、输入命令:cd /d d:\test\ 然后使用windeployqt 工具命令:windeployqt calc_20180508.exe 执行如下: 六、执行完后就可以看到test文件夹里面自动复制的插件文件、dll文件、qm文件等,在这里就得到了完全程序发布集合 七
打包命令: windeployqt untitled.exe如果打包时需要去掉不需要的库文件,我们可以指定--no-参数排除多余的动态链接库。 打包命令: windeployqt --no-angle --no-opengl-sw untitled.exe当我们打包完成后,可以手动删除多余文件,只保留如下文件即可,其他的可全部裁掉。图片
大家现在的Qt版本应该都是5.0以上了,QT5自带的windeployqt(不需要下载安装),它可以找到程序(exe)用到的所有库文件,并且都拷贝到exe程序的当前文件。 点击开始->所有程序->Qt 5.9.6->MinGW 5.3.0->Qt 5.9.6 for Desktop image.png 2、在命令行中切换到exe所在的目录下 image.png 3、使用windeployqt
1.命令方式 不使用QML组件打包: windeployqt xxx.exe 使用QML组件打包: windeployqt xxx.exe --qmldir qmlPath 注意: 请使用Qt提供的控制台操作
Qt君:你可以根据你的编译配置(Qt版本,编译器,32/64位,release/debug)来选用不同的windeployqt.exe工具帮你生成Qt依赖的运行库。 ? 一般程序生成方法: windeployqt xxx.exe 如果是使用QML组件需要这样操作: windeployqt xxx.exe --qmldir qmlPath 注意: 请使用Qt提供的控制台操作
---- 补充:windeployqt补全相关库 有可能补的不全,需要手动补充。 windeployqt ExamSys.exe 找不到命令添加环境变量。
:\MicrosoftVisualStdio2022\Community\VC\Auxiliary\Build\vcvarsall.bat x64 命令行进入待打包的目录,只留下一个exe 文件即可 windeployqt
linuxdeployqt 简介 基于Windows-Qt 发布的打包工具windeployqt,主要打包Qt相关依赖库,但是在linux,qt官方并未发布对应的打包版本。 Windows介绍 The Windows deployment tool windeployqt is designed to automate the process of creating a deployable Qt Deploy Tool 6.0.3 The simplest way to use windeployqt is to add the bin directory of your Qt installation <QT_DIR\bin>) to the PATH variable and then run: windeployqt <path-to-app-binary> If ICU, etc. are If your application uses Qt Quick, run: windeployqt --qmldir <path-to-app-qml-files> <path-to-app-binary
如果使用动态链接编译Qt,移植到其他系统上需要库文件,下面讲解如何解决这一问题 设置qt环境变量后,在cmd中执行 windeployqt 可执行文件名 这样qt就会自动把依赖拷贝出来,然后我们安装软件