运行Haskell文件报错addDLL: mingw32依赖未加载(Win32错误126)求助
解决Windows 11下Haskell运行时
addDLL: mingw32 or dependencies not loaded. (Win32 error 126)错误 调整环境变量优先级与路径
把C:\mingw64\bin放到系统PATH环境变量的最顶端,删掉C:\MinGW\mingw32\bin这类32位路径——64位Windows下Haskell更适配mingw64的64位组件。重启所有终端和VSC后,在CMD里执行where gcc,确认输出是C:\mingw64\bin\gcc.exe,确保系统优先调用正确的mingw版本。验证mingw64核心依赖完整性
打开C:\mingw64\bin文件夹,确认存在libmingw32-0.dll、libgcc_s_seh-1.dll、libstdc++-6.dll这几个核心文件。如果缺失,去正规渠道(比如MSYS2或MinGW-w64官方)下载完整的mingw64压缩包,解压后覆盖现有文件夹,别用零散安装的组件。配置Haskell构建工具指向正确mingw
- 用Stack的话,在项目的
stack.yaml里添加:system-ghc: true extra-path: - C:\mingw64\bin - 用Cabal的话,在用户目录的
cabal.config里添加:extra-include-dirs: C:\mingw64\include extra-lib-dirs: C:\mingw64\lib
- 用Stack的话,在项目的
重装Haskell的Win32依赖库
打开终端执行cabal update,然后运行cabal install Win32 --reinstall;如果用Stack,就执行stack install Win32 --force-reinstalls,强制修复Win32库的关联问题。排查系统冲突组件
检查PATH里是否有其他MinGW/Cygwin路径(比如Git自带的MinGW组件),暂时移除这些路径后再测试。也可以用Dependency Walker工具打开Haskell生成的可执行文件,查看具体缺失的DLL,针对性补充。
内容的提问来源于stack exchange,提问作者JohnnyDough
相关产品推荐
相关产品推荐

