zoukankan      html  css  js  c++  java
  • QT5 编译程序运行,报错丢失libgcc_s_sjlj1.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....) 所以之前程序运行正常。

  • 相关阅读:
    hdu 2112 (最短路+map)
    poj 1502 最短路+坑爹题意
    poj 1696 Space Ant (极角排序)
    poj 1410 线段相交判断
    使用本地光盘安装Microsoft .NET Framework 3.5 for Win8.1/WinServer2012R2
    Excel REPT函数使用
    tomcat7配置虚拟目录
    Tomcat 7.0的配置
    js去除空格
    JAVABEAN连接各数据库
  • 原文地址:https://www.cnblogs.com/GengMingYan/p/15684178.html
Copyright © 2011-2022 走看看