ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

QT5 编译程序运行,报错丢失libgcc_s_sjlj-1.dll。尝试重新安装该程序以解决此问题。

2021-12-14 12:00:26  阅读:173  来源: 互联网

标签:libstd QT5 重新安装 Windows 程序 System32 c++ dll 报错


之前一直正常使用,最近在QT Creator中运行程序,直接程序异常结束,单独启动EXE程序时,报以上错误。

最后把问题锁定在libstdc++-6.dll库上,尝试把QT环境bin目录下的libstdc++-6.dll拿到程序运行目录下,临时解决此问题。

 

 

 原因是最近安装过一个程序,这个程序在C:\Windows\System32下放了一个libstdc++-6.dll:

解决方式是把System32下的libstdc++-6移动到新安装程序目录下, 这样QT程序就能根据Windows动态库搜索规则,正常命中 PATH中QT路径下的libstdc++-6.dll。

先安装的程序也可以正常运行,如果不知道System32下的libstdc++-6.dll库是哪个程序放哪的,那只能看自己取舍了。

 

补充:

 Windows程序运行动态库搜索目录顺序(参考: https://www.cnblogs.com/findumars/p/4995536.html):

1. 程序所在目录下搜索

2. Windows 系统目录

3. Windows\System32 目录

.....

n. PATH 环境变量中目录

因为新安装的程序在Windows\System32目录下放了一个libstdc++-6.dll,所以程序在运行的时候搜索动态库过程:

1. 程序所在目录下搜索 libstdc++-6.dll: 没有

2. Windows下搜索 libstdc++-6.dll: 没有

3. Windows\System32 下搜索 libstdc++-6.dll: 有! 搜索结束

以前Windows\System32下没有libstdc++-6.dll,所以还会根据搜索过程向下搜索:

.....

n. PATH环境变量中;分割开,每个路径下搜索libstdc++-6.dll, 一般安装QT环境后,会在PATH中至少添加一个目录,这个目录下有QT程序运行环境需要的一些库文件(QTCore、QTNetwork....) 所以之前程序运行正常。

 

标签:libstd,QT5,重新安装,Windows,程序,System32,c++,dll,报错
来源: https://www.cnblogs.com/GengMingYan/p/15684178.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有