一、摘要: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 打包的方法及常见问题,不同路径的差异相关推荐

  1. Window平台Qt软件打包发布方法

    Qt开发生成的工程,通过动态编译之后生成对应的可执行文件,如果直接执行该可执行文件则会报错: 原因是:Qt动态编译生成的可执行文件依赖非常多的dll文件,并且这些dll文件可能分布在不同文件目录,且这 ...

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

    Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...

  3. 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 官方开发环 ...

  4. qt creator release编译无错误,输出crashed解决方法

    前言:debug不能运行release版本的lib 因此使用release打包 在release时出现如下问题,但编译无错误,这一般是由于dll缺失引起的 解决方法: 找到qt安装目录,找到你所使用k ...

  5. win7平台下QT软件的打包与发布(部署与安装)

    软件编写调试好之后最重要的就是打包和发布,这样软件才好传播. qt软件的打包发布一个难点是必备dll文件的识别.不少日志说用dependencyWalker,今天我试了一下发现查找dll不完全,比如辨 ...

  6. win7平台下QT软件的打包与发布(部署与安装) 打包成安装包样式

    软件编写调试好之后最重要的就是打包和发布,这样软件才好传播. qt软件的打包发布一个难点是必备dll文件的识别.不少日志说用dependencyWalker,今天我试了一下发现查找dll不完全,比如辨 ...

  7. QT的程序打包发布(将QT5的工程项目打包成一个可直接运行的exe程序)

    Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:https://blog.csdn.net/lxj434368832/article/details/80814388 Qt 官 ...

  8. java assembly 打包_maven 使用assembly 进行打包的方法

    1. pom 中添加assembly 插件 要使用assembly 进项编译打包, 首先主要在pom 中的build中添加插件信息, 具体如图下所示: ${project.artifactId} sr ...

  9. Windows下Qt程序初步打包

    首先构建项目(推荐使用MSVC,release)并生成相应的exe. 来到相应的built中找到release文件夹,进入然后找到.exe文件,将其拷贝到新的文件夹下. 在搜索中搜索:(注意:编译器使 ...

最新文章

  1. linux每日命令(17):which命令
  2. php怎么关闭oracle连接,PHP 连接 Oracle
  3. 哪个线程执行CompletableFuture的任务和回调?
  4. 安装win10和Linux双系统的个人经验
  5. LeetCode 2192. 有向无环图中一个节点的所有祖先(拓扑排序)
  6. 携程赴港二次上市在即 “旅游营销枢纽”战略助价值重估
  7. 初学python之列表
  8. Cas单点登录的服务器端和客户端的配置
  9. 大厂首选,为什么 SRE 比传统运维更抢手?
  10. 1985-2020年全国各省一二三产业就业人数/各省分产业就业人数数据(无缺失)
  11. Smarty - 下载
  12. Android实现录屏直播(一)ScreenRecorder的简单分析
  13. 计算机专业可以当警校吗,警校开设的计算机类专业,毕业生就业方向偏向于信息安全,请注意...
  14. 上海域格CLM920_NC3模块连接oneNET平台
  15. 回文串问题(leetcode 125. 验证回文串 c#)
  16. iar编译器添加c语言标准库,用IAR编译器开发DS80C400
  17. 数字图像处理之第三章
  18. 独立开发者如何笑傲江湖
  19. 机械硬盘中的LMR、PMR、CMR、SMR的定义和关系
  20. EtherCAT设备协议详解一、EtherCAT概述

热门文章

  1. elasticsearch-es search 查询
  2. Escape HTML
  3. 图解蓝牙 BR/EDR 和BLE的区别
  4. (一)Hadoop介绍
  5. mysql优化工具 MySQL Tuner
  6. 不借助编辑器自带的代码高亮工具(Syntaxhighlighte),生成完美格式的语法高亮代码
  7. typedef typename解释
  8. Java中的变量名命名规则
  9. LDF文件过大,如何收缩
  10. Activity onDestroy() 回调缓慢问题分析及完美解决方案