Qt or vs2019release文件使用windeployqt打包显示缺少libgcc_s_seh-1.dll,手动添加后又报错应用程序无法正常启动(0xc000007b)

自己在网上查了一整天,终于解决了qt&vs2019 release生成的.exe文件移植到任意电脑上运行的问题了。

编译环境

qt5.14.2 vs2019
我是把qt环境整合在vs2019上了

出现的问题

1.缺少libgcc_s_seh-1.dll库,这里需要寻找我们release对应qt的库。
在这里插入图片描述
2.添加后显示应用程序无法启动无法正常启动(0xc000007b)
3.qml应用程序点击没有报错也无法打开

查看自己的编译环境

在去解决问题前,我们需要知道自己的编译环境才能正确解决问题。
qtcreator:可以在项目配置或者编译的地方看到
在这里插入图片描述
vs2019 打开扩展->qt vs tools->qt version
在这里插入图片描述
这些是我自己的编译环境,大家根据情况,知晓自己是什么样的编译环境即可。

解决方案

把我们的.exe放在一个新的文件夹(这个大家应该都知道)。
1.在我们最开始生成文件的时候,一定要使用对应版本的qt的cmd窗口,否则生成版本不对(使用其他cmd进入文件夹也不行,我就是用mingw32位cmd进64位文件夹,exe文件最后就是运行不了),我这里就有四个:
mingw 7.3.0是qtcreator生成文件使用的
MSVC是vs2019生成文件使用的。
在这里插入图片描述
注意:一定要看清你自己文件的编译环境是哪一个,版本不对应最后生成的库就会导致exe文件打不开。更不要用win的cmd或者powershell等。

2.打开对应的cmd窗口就会在对应的编译环境文件夹下面,只要输入命令:cd bin进入bin目录即可。然后运行命令:windeployqt.exe 文件路径\项目名.exe,如果是qml文件看第三条。
在这里插入图片描述

3.如果是qml文件,看这里,命令别使用错误,需要在使用命令:
windeployqt.exe 文件路径\项目名.exe -qmldir qml路径
比如:
windeployqt.exe C:\Users\xxx\source\repos\QtQuick_IOCtrl\publish\hello.exe -qmldir C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\qml。

注意:-qmldir不能少,不然扫描不到qml文件夹,最后缺少组件,你会发现点击之后没有报错程序也没运行。

4.qtcreator生成的文件的文件夹可能会缺少libgcc_s_seh-1.dll库,添加对应qt路径下的文件,我的路径是C:\Qt\Qt5.14.2\Tools\mingw730_64\opt\bin\libgcc_s_seh-1.dll,大家自行寻找即可。
对于vs2019生成的文件,通常会缺少vs2019相关的库,建议这种情况下生成的文件在有相同vs环境的电脑上运行(因为缺的库挺多的)。

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: libgcc_s_seh-1.dll 是一个由 GNU Compiler Collection (GCC) 生成的 C 语言运行时库。它提供了 C 语言程序所需的基本运行时函数,如内存分配、字符串处理等。该文件程序运行时需要被加载。 ### 回答2: libgcc_s_seh-1.dllWindows操作系统中的一个系统文件,是GCC(GNU编译器集合)编译器链中使用的共享库文件之一。GCC编译器集合是一种常用的编译器集合,它可以用于开发C、C++以及其它语言的编译器,包括Fortran、Java、Objective-C等等。在Windows操作系统中,如果在安装某些应用程序缺少libgcc_s_seh-1.dll文件,就会导致应用程序无法运行。 libgcc_s_seh-1.dll文件的作用是提供一些运行时库函数,为GCC所编译出的程序提供支持。这个dll文件GCC编译器链中的一个共享库,是用来管理C++异常机制的库,在Windows情况下,这个库是很重要的。 在Windows操作系统中,如果某些软件需要使用libgcc_s_seh-1.dll文件,那么你需要通过下载该文件,并将其放置在正确的目录中才能使该软件正常工作。要注意的是,应该从可信的来源下载libgcc_s_seh-1.dll文件,因为恶意软件可能会伪装成libgcc_s_seh-1.dll文件,也可能会通过该文件中的漏洞攻击你的计算机。 总的来说,libgcc_s_seh-1.dllWindows操作系统中扮演着重要的角色,提供了对GCC编译的程序的支持,如果出现缺失或错误,就需要采取适当的措施来解决问题,以保证计算机可以正常工作。 ### 回答3: libgcc_s_seh-1.dll是一个非常重要的DLL文件,它是GCC运行时库中的一个核心文件GCC是GNU编译器套件的缩写,是一套自由软件编译器集合,用于编译C、C++、Objective-C等各种编程语言。而运行时库则是GCC编译后生成的可执行文件所需要的动态链接库,libgcc_s_seh-1.dll就是其中一个。 libgcc_s_seh-1.dll主要提供了一些函数和接口,用于实现程序运行时的支持,例如异常处理、禁用字节对齐操作等等。如果缺少了这个DLL文件程序无法正常运行,很可能会报错提示找不到这个文件。因此,libgcc_s_seh-1.dll可以说是GCC编译的可执行文件的必备文件。 一般情况下,我们并不需要手动安装或更新libgcc_s_seh-1.dll,因为它会随着GCC编译器的安装而自动安装到系统目录下。但是,如果在使用某个程序时出现了缺少libgcc_s_seh-1.dll的错误提示,我们可以尝试以下几种解决办法: 1. 重新安装程序:有时候,程序安装不完整或文件损坏也会导致libgcc_s_seh-1.dll缺失的错误。在这种情况下,可以尝试重新安装软件,让系统自动把文件安装好。 2. 手动下载:如果重新安装软件并没有起到作用,我们可以尝试手动下载libgcc_s_seh-1.dll文件,并将其放入程序安装目录下或者Windows系统目录下。可以从互联网上一些DLL文件下载网站下载相关文件。 3. 更新GCC编译器:如果你是开发者或有一定的编程经验,当你发现程序需要的libgcc_s_seh-1.dll已经非常旧了,可能无法满足新开发的需求,那么可以考虑更新GCC编译器来更新该文件。 总之,libgcc_s_seh-1.dllGCC编译器运行时库中一个非常重要的文件,它能够提供程序运行时的支持。如果程序提示该文件错误,可以尝试重新安装程序手动下载、更新GCC编译器等方法解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值