You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署libcrypto-3-x64.dll/legacy.dll时出现0xc0000142错误的解决办法

解决MSYS/MINGW64环境下Qt+GDAL GIS应用部署的0xc0000142错误

问题背景

基于Qt在MSYS/MINGW64环境开发的GDAL GIS应用,此前打包exe及依赖DLL部署完全正常。在更新MSYS全部库后,部署时出现0xc0000142启动错误。

排查过程

  • 定位错误根源:错误由libcrypto-3-x64.dll依赖的legacy.dll缺失或路径不正确导致
  • 场景验证:
    • 在命令行切换至C:\根目录运行应用时,必触发该错误
    • 删除exe目录下的libcrypto-3-x64.dll,让应用调用c:\qt\msys64\mingw64\bin下的同名文件,应用可正常启动
  • 依赖路径规律:
    • libcrypto-3-x64.dll必须置于c:\qt\msys64\mingw64\bin
    • legacy.dll必须置于c:\qt\msys64\mingw64\lib\ossl-modules
    • 其余所有依赖DLL均可放在exe同级目录
  • 尝试更换OpenSSL版本,会引发其他连锁依赖问题,无法直接解决

临时解决方案

调整legacy.dll的部署路径,匹配OpenSSL的模块查找逻辑:

  • 若应用安装目录为../myapp/bin/something.exe,需将legacy.dll放置在与bin同级的路径:../myapp/lib/ossl-modules/legacy.dll

内容的提问来源于stack exchange,提问作者Victor Jetten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 13:17:07