Haskell-堆栈:构建期间出现访问冲突错误
Haskell-Stack: Access violation error during build
过去几天我一直在尝试使用堆栈构建我的 Haskell 项目,但我遇到了访问冲突错误。据我了解,我拥有最新的堆栈版本和 GHC。
在我将一个库添加到我的 cabal 文件之前,这一切最初都是有效的。我现在已经删除了它,但错误仍然存在。我还回到了我的代码肯定能正常工作的时候,所以我确定这是由堆栈引起的。
我试过卸载 stack,删除 .stack-work 并重新安装。然后进行堆栈设置。我尝试了多种命令但没有结果。
我现在也尝试使用 Stack 创建一个新项目并构建它,但我遇到了同样的问题。
stack build
Building all executables for `haskell-project' once. After a successful build of all of them, only specified executables will be rebuilt.
haskell-project-0.1.0.0: configure (exe)
Access violation in generated code when reading 000000000e58391a
-- While building custom Setup.hs for package haskell-project-0.1.0.0 using:
C:\sr\setup-exe-cache\x86_64-windows\Cabal-simple_Z6RU0evB_2.0.1.0_ghc-8.2.2.exe --builddir=.stack-work\distc8418a7 configure --with-ghc=C:\Users\Michael\AppData\Local\Programs\stack\x86_64-windows\ghc-8.2.2\bin\ghc.EXE --with-ghc-pkg=C:\Users\Michael\AppData\Local\Programs\stack\x86_64-windows\ghc-8.2.2\bin\ghc-pkg.EXE --user --package-db=clear --package-db=global --package-db=C:\sr\snapshotscecb13\pkgdb --package-db=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\pkgdb --libdir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\lib --bindir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\bin --datadir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\share --libexecdir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\libexec --sysconfdir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\etc --docdir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\doc\haskell-project-0.1.0.0 --htmldir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\doc\haskell-project-0.1.0.0 --haddockdir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\doc\haskell-project-0.1.0.0 --dependency=base=base-4.10.1.0 --dependency=containers=containers-0.5.10.2 --dependency=mtl=mtl-2.2.1-DscMMmDQUE6GBfOSl4qMUH --dependency=parsec=parsec-3.1.11-3BgBURmbRiVF8fgoxhAiBa --dependency=pretty-simple=pretty-simple-2.0.1.0-J3QTM6x6LHL5fhqavYvVhJ --dependency=text=text-1.2.2.2-9VTsh6V7U7hpagw2HDvpZ --extra-include-dirs=C:\Users\Michael\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\include --extra-lib-dirs=C:\Users\Michael\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\bin --extra-lib-dirs=C:\Users\Michael\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib --enable-tests --enable-benchmarks
Process exited with code: ExitFailure 1
解决此问题或可能原因的步骤是什么?
我设法为遇到相同问题的任何人找到了临时解决方案。
我将 cabal 降级到 1.24.0.2 版并将解析器更改为使用 GHC 8.0.1 版 (resolver: ghc-8.0.1
)。
然后 运行 stack solver
我现在可以构建了。
issue #3765 on the stack tracker has some workarounds for this, in addition to .
最好的解决方案似乎是取消设置 __COMPAT_LAYER
,当设置为 INSTALLER
时可以重现错误。
C:\>set __COMPAT_LAYER=
原因可能是某些版本的 GHC 中存在错误,该错误捕获了应该传播给用户的异常。如果是这种情况,则存在潜在问题,而此错误正在隐藏它。
请对上述问题添加评论,因为这将有助于维护人员跟踪此问题的普遍性。
过去几天我一直在尝试使用堆栈构建我的 Haskell 项目,但我遇到了访问冲突错误。据我了解,我拥有最新的堆栈版本和 GHC。
在我将一个库添加到我的 cabal 文件之前,这一切最初都是有效的。我现在已经删除了它,但错误仍然存在。我还回到了我的代码肯定能正常工作的时候,所以我确定这是由堆栈引起的。
我试过卸载 stack,删除 .stack-work 并重新安装。然后进行堆栈设置。我尝试了多种命令但没有结果。
我现在也尝试使用 Stack 创建一个新项目并构建它,但我遇到了同样的问题。
stack build
Building all executables for `haskell-project' once. After a successful build of all of them, only specified executables will be rebuilt.
haskell-project-0.1.0.0: configure (exe)
Access violation in generated code when reading 000000000e58391a
-- While building custom Setup.hs for package haskell-project-0.1.0.0 using:
C:\sr\setup-exe-cache\x86_64-windows\Cabal-simple_Z6RU0evB_2.0.1.0_ghc-8.2.2.exe --builddir=.stack-work\distc8418a7 configure --with-ghc=C:\Users\Michael\AppData\Local\Programs\stack\x86_64-windows\ghc-8.2.2\bin\ghc.EXE --with-ghc-pkg=C:\Users\Michael\AppData\Local\Programs\stack\x86_64-windows\ghc-8.2.2\bin\ghc-pkg.EXE --user --package-db=clear --package-db=global --package-db=C:\sr\snapshotscecb13\pkgdb --package-db=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\pkgdb --libdir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\lib --bindir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\bin --datadir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\share --libexecdir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\libexec --sysconfdir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\etc --docdir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\doc\haskell-project-0.1.0.0 --htmldir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\doc\haskell-project-0.1.0.0 --haddockdir=C:\Users\Michael\Desktop\haskell-project\.stack-work\install\ccbce92a\doc\haskell-project-0.1.0.0 --dependency=base=base-4.10.1.0 --dependency=containers=containers-0.5.10.2 --dependency=mtl=mtl-2.2.1-DscMMmDQUE6GBfOSl4qMUH --dependency=parsec=parsec-3.1.11-3BgBURmbRiVF8fgoxhAiBa --dependency=pretty-simple=pretty-simple-2.0.1.0-J3QTM6x6LHL5fhqavYvVhJ --dependency=text=text-1.2.2.2-9VTsh6V7U7hpagw2HDvpZ --extra-include-dirs=C:\Users\Michael\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\include --extra-lib-dirs=C:\Users\Michael\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\bin --extra-lib-dirs=C:\Users\Michael\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib --enable-tests --enable-benchmarks
Process exited with code: ExitFailure 1
解决此问题或可能原因的步骤是什么?
我设法为遇到相同问题的任何人找到了临时解决方案。
我将 cabal 降级到 1.24.0.2 版并将解析器更改为使用 GHC 8.0.1 版 (resolver: ghc-8.0.1
)。
然后 运行 stack solver
我现在可以构建了。
issue #3765 on the stack tracker has some workarounds for this, in addition to
最好的解决方案似乎是取消设置 __COMPAT_LAYER
,当设置为 INSTALLER
时可以重现错误。
C:\>set __COMPAT_LAYER=
原因可能是某些版本的 GHC 中存在错误,该错误捕获了应该传播给用户的异常。如果是这种情况,则存在潜在问题,而此错误正在隐藏它。
请对上述问题添加评论,因为这将有助于维护人员跟踪此问题的普遍性。