Qt6.1.2 MinGW编译程序缺libgcc_s_seh-1.dll及0xc000007b错误如何解决
解决方案
两个报错的核心原因如下:
- 第一个报错是程序运行时未找到对应MinGW版本的运行时库文件
- 第二个
0xc000007b报错为Windows加载程序时检测到32位dll与64位程序架构不兼容所致,你之前手动复制的libgcc_s_seh-1.dll为32位版本,和你64位编译的程序不匹配。
推荐解决方法:使用Qt官方部署工具自动补全依赖
该方式可以完全避免依赖版本、位数不匹配的问题,操作步骤如下:
- 启动对应Qt版本的终端:打开开始菜单中Qt 6.1.2分类下的「Qt 6.1.2 (MinGW 8.1.0 64-bit)」终端,避免系统默认环境变量干扰
- 切换到你编译生成的可执行文件所在目录,示例命令:
cd D:\项目路径\build-release\release - 执行自动部署命令:
windeployqt 你的程序名.exe
命令执行完成后,工具会自动将所有Qt相关依赖、MinGW运行时依赖(包含正确64位版本的libgcc_s_seh-1.dll、libstdc++-6.dll、libwinpthread-1.dll等)复制到当前目录,直接双击即可正常运行程序。
手动修复方案(不推荐)
如果需要手动补全dll,必须保证所有复制的dll均来自你本地Qt安装目录下的Tools\mingw810_64\bin\路径,不要从网络随意下载dll,也不要使用其他32位MinGW版本中的对应文件。
疑难排查
如果执行完windeployqt后仍然报错,可以使用Dependency Walker工具加载你的可执行文件,查看所有依赖项的加载状态,标红的项即为缺失或架构不匹配的依赖,对应替换为正确的64位版本即可。
同时需要检查系统PATH环境变量中是否存在32位MinGW的bin目录路径,如果存在可以删除该路径,避免系统优先加载错误位数的dll。
内容的提问来源于stack exchange,提问作者Alby
相关产品推荐
相关产品推荐

