qt window release 打包的方法及常见问题,不同路径的差异
一、摘要:qt 程序开发后要发布打包,但是使用网上的教程,总是打这样那样的错误,如下面,我们总结一下原因,以及解决办法和注意事项
二、问题汇总
untitled01.exe-无法找到入口
无法定位程序输入点
ZNSt18condition variable4waitERSt11unique locklSt5mutexE于动态链接库D:Qt\Qt5.14.2\5.14.2\mingw73 32\bin/Qt5Core.dll
上。
untitled01
Thisapplication failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: direct2d, minimal, offscreen, webgl windows.
xxxx.exe-系统错误
由于找不到 Qt5Guid.dll,无法继续执行代码。重新安装程序可能会解决此问题。
确定
三、问题分析
3.1环境分析
win10 +qt-opensource-windows-x86-5.14.2.exe 安装了mingw73_32,mingw73_64,
刚开始msvc2015_64、msvc2017、msvc2017_64、winrt_armv7_msvc2015、winrt_armv7_msvc2017、winrt_x64_msvc2015、winrt_x64_msvc2017winrt_x86_msvc2017 这些没有安装,后来又卸载补装。
最后:
实际不安装全,也可以
3.2 打包方法分析
说明 示意项目名称 untitled01
方法一: 先在开始输入cmd 再定位到要打包的目录(失败)
在命令上中输入 D:\Qt\Qt5.14.2\5.14.2\mingw73_32\bin\windeployqt.exe +untitled01.exe
当前在准备发包的程序的当前目录
准备 命令路径 D:\Qt\Qt5.14.2\5.14.2\mingw73_32\bin\windeployqt.exe
回车
打印的脚本
D:\>d:D:\>cd D:\workspace\windowdemo\build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release\releaseD:\workspace\windowdemo\build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release\release>D:\Qt\Qt5.14.2\5.14.2\mingw73_32\bin\windeployqt.exe untitled01.exe
D:\workspace\windowdemo\build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release\release\untitled01.exe 32 bit, release executable
Adding Qt5Svg for qsvgicon.dll
Skipping plugin qtvirtualkeyboardplugin.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qtvirtualkeyboard_hangul.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qtvirtualkeyboard_openwnn.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qtvirtualkeyboard_pinyin.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qtvirtualkeyboard_tcime.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qtvirtualkeyboard_thai.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Direct dependencies: Qt5Core Qt5Widgets
All dependencies : Qt5Core Qt5Gui Qt5Widgets
To be deployed : Qt5Core Qt5Gui Qt5Svg Qt5Widgets
Updating Qt5Core.dll.
Updating Qt5Gui.dll.
Updating Qt5Svg.dll.
Updating Qt5Widgets.dll.
Updating libGLESv2.dll.
Updating libEGL.dll.
Updating D3Dcompiler_47.dll.
Updating opengl32sw.dll.
Updating libgcc_s_dw2-1.dll.
Updating libstdc++-6.dll.
Creating directory D:/workspace/windowdemo/build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release/release/iconengines.
Updating qsvgicon.dll.
Creating directory D:/workspace/windowdemo/build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release/release/imageformats.
Updating qgif.dll.
Updating qicns.dll.
Updating qico.dll.
Updating qjpeg.dll.
Updating qsvg.dll.
Updating qtga.dll.
Updating qtiff.dll.
Updating qwbmp.dll.
Updating qwebp.dll.
Creating directory D:/workspace/windowdemo/build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release/release/platforms.
Updating qwindows.dll.
Creating directory D:/workspace/windowdemo/build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release/release/styles.
Updating qwindowsvistastyle.dll.
Creating D:\workspace\windowdemo\build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release\release\translations...
Creating qt_ar.qm...
Creating qt_bg.qm...
Creating qt_ca.qm...
Creating qt_cs.qm...
Creating qt_da.qm...
Creating qt_de.qm...
Creating qt_en.qm...
Creating qt_es.qm...
Creating qt_fi.qm...
Creating qt_fr.qm...
Creating qt_gd.qm...
Creating qt_he.qm...
Creating qt_hu.qm...
Creating qt_it.qm...
Creating qt_ja.qm...
Creating qt_ko.qm...
Creating qt_lv.qm...
Creating qt_pl.qm...
Creating qt_ru.qm...
Creating qt_sk.qm...
Creating qt_uk.qm...
Creating qt_zh_TW.qm...D:\workspace\windowdemo\build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release\release>
双击:
双击无法运行,总是报错,排查越来,一时还摸不着头脑,急着打包,搞的一盆冷水。
网上很多资料都是采用这种方法,但是实操过程中,这个不行,也须是之前配置有qt的环境的问题,总之,这种方法存在不足
方法二、使用qt自带的命令符(成功)
准备打包程序路径
D:\workspace\windowdemo\build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release\release\untitled01.exe
当前是在qt 自带的命令符下面
输出日志:
D:\Qt\Qt5.14.2\5.14.2\mingw73_32>windeployqt.exe D:\workspace\windowdemo\build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release\release\untitled01.exe
D:\workspace\windowdemo\build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release\release\untitled01.exe 32 bit, release executable
Adding Qt5Svg for qsvgicon.dll
Skipping plugin qtvirtualkeyboardplugin.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qtvirtualkeyboard_hangul.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qtvirtualkeyboard_openwnn.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qtvirtualkeyboard_pinyin.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qtvirtualkeyboard_tcime.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Skipping plugin qtvirtualkeyboard_thai.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Direct dependencies: Qt5Core Qt5Widgets
All dependencies : Qt5Core Qt5Gui Qt5Widgets
To be deployed : Qt5Core Qt5Gui Qt5Svg Qt5Widgets
Updating Qt5Core.dll.
Updating Qt5Gui.dll.
Updating Qt5Svg.dll.
Updating Qt5Widgets.dll.
Updating libGLESv2.dll.
Updating libEGL.dll.
Updating D3Dcompiler_47.dll.
Updating opengl32sw.dll.
Updating libgcc_s_dw2-1.dll.
Updating libstdc++-6.dll.
Updating libwinpthread-1.dll.
Creating directory D:/workspace/windowdemo/build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release/release/iconengines.
Updating qsvgicon.dll.
Creating directory D:/workspace/windowdemo/build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release/release/imageformats.
Updating qgif.dll.
Updating qicns.dll.
Updating qico.dll.
Updating qjpeg.dll.
Updating qsvg.dll.
Updating qtga.dll.
Updating qtiff.dll.
Updating qwbmp.dll.
Updating qwebp.dll.
Creating directory D:/workspace/windowdemo/build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release/release/platforms.
Updating qwindows.dll.
Creating directory D:/workspace/windowdemo/build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release/release/styles.
Updating qwindowsvistastyle.dll.
Creating D:\workspace\windowdemo\build-untitled01-Desktop_Qt_5_14_2_MinGW_32_bit-Release\release\translations...
Creating qt_ar.qm...
Creating qt_bg.qm...
Creating qt_ca.qm...
Creating qt_cs.qm...
Creating qt_da.qm...
Creating qt_de.qm...
Creating qt_en.qm...
Creating qt_es.qm...
Creating qt_fi.qm...
Creating qt_fr.qm...
Creating qt_gd.qm...
Creating qt_he.qm...
Creating qt_hu.qm...
Creating qt_it.qm...
Creating qt_ja.qm...
Creating qt_ko.qm...
Creating qt_lv.qm...
Creating qt_pl.qm...
Creating qt_ru.qm...
Creating qt_sk.qm...
Creating qt_uk.qm...
Creating qt_zh_TW.qm...D:\Qt\Qt5.14.2\5.14.2\mingw73_32>
双击运行成功
qt自带的cmd命令符还是有其优势的
四、对比结果
结论:
qt自带命令符比默认cmd打包出来的dll不一样加多一个文件
libgcc_s_dw2-1.dll
libstdc++-6.dll
libwinpthread-1.dll
结论:
qt自带的命令符,还是有有优势的,初学者,还是要使用自带的命令符,因为有很多的作用域问题
,如果你的作用域没有冲突,应当是使用任何一种方法都是一样的
qt window release 打包的方法及常见问题,不同路径的差异相关推荐
- Window平台Qt软件打包发布方法
Qt开发生成的工程,通过动态编译之后生成对应的可执行文件,如果直接执行该可执行文件则会报错: 原因是:Qt动态编译生成的可执行文件依赖非常多的dll文件,并且这些dll文件可能分布在不同文件目录,且这 ...
- Qt程序打包发布方法(使用官方提供的windeployqt工具)
Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...
- Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方
Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...
- qt creator release编译无错误,输出crashed解决方法
前言:debug不能运行release版本的lib 因此使用release打包 在release时出现如下问题,但编译无错误,这一般是由于dll缺失引起的 解决方法: 找到qt安装目录,找到你所使用k ...
- win7平台下QT软件的打包与发布(部署与安装)
软件编写调试好之后最重要的就是打包和发布,这样软件才好传播. qt软件的打包发布一个难点是必备dll文件的识别.不少日志说用dependencyWalker,今天我试了一下发现查找dll不完全,比如辨 ...
- win7平台下QT软件的打包与发布(部署与安装) 打包成安装包样式
软件编写调试好之后最重要的就是打包和发布,这样软件才好传播. qt软件的打包发布一个难点是必备dll文件的识别.不少日志说用dependencyWalker,今天我试了一下发现查找dll不完全,比如辨 ...
- QT的程序打包发布(将QT5的工程项目打包成一个可直接运行的exe程序)
Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:https://blog.csdn.net/lxj434368832/article/details/80814388 Qt 官 ...
- java assembly 打包_maven 使用assembly 进行打包的方法
1. pom 中添加assembly 插件 要使用assembly 进项编译打包, 首先主要在pom 中的build中添加插件信息, 具体如图下所示: ${project.artifactId} sr ...
- Windows下Qt程序初步打包
首先构建项目(推荐使用MSVC,release)并生成相应的exe. 来到相应的built中找到release文件夹,进入然后找到.exe文件,将其拷贝到新的文件夹下. 在搜索中搜索:(注意:编译器使 ...
最新文章
- linux每日命令(17):which命令
- php怎么关闭oracle连接,PHP 连接 Oracle
- 哪个线程执行CompletableFuture的任务和回调?
- 安装win10和Linux双系统的个人经验
- LeetCode 2192. 有向无环图中一个节点的所有祖先(拓扑排序)
- 携程赴港二次上市在即 “旅游营销枢纽”战略助价值重估
- 初学python之列表
- Cas单点登录的服务器端和客户端的配置
- 大厂首选,为什么 SRE 比传统运维更抢手?
- 1985-2020年全国各省一二三产业就业人数/各省分产业就业人数数据(无缺失)
- Smarty - 下载
- Android实现录屏直播(一)ScreenRecorder的简单分析
- 计算机专业可以当警校吗,警校开设的计算机类专业,毕业生就业方向偏向于信息安全,请注意...
- 上海域格CLM920_NC3模块连接oneNET平台
- 回文串问题(leetcode 125. 验证回文串 c#)
- iar编译器添加c语言标准库,用IAR编译器开发DS80C400
- 数字图像处理之第三章
- 独立开发者如何笑傲江湖
- 机械硬盘中的LMR、PMR、CMR、SMR的定义和关系
- EtherCAT设备协议详解一、EtherCAT概述