簡體   English   中英

Haskell-Stack:構建期間的訪問沖突錯誤

[英]Haskell-Stack: Access violation error during build

我一直在嘗試使用堆棧構建我最近幾天的Haskell項目,並且我遇到了訪問沖突錯誤。 根據我的理解,我有最新的堆棧版本和GHC。

這一切都是最初工作,直到我將庫添加到我的cabal文件。 我現在已將其刪除,但錯誤仍然存​​在。 我還回到了我的代碼肯定正在工作的時候,所以我確定這是由堆棧引起的。

我已經嘗試卸載堆棧,刪除.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\dist\5c8418a7 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\snapshots\13cecb13\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我現在能夠構建。

除了邁克爾的回答之外,堆棧跟蹤器上的問題#3765還有一些解決方法。

似乎最好的解決方案是取消設置__COMPAT_LAYER ,當設置為INSTALLER可以重現該錯誤。

C:\\>set __COMPAT_LAYER=

原因可能是GHC的某些版本中的錯誤,它會捕獲應該傳播給用戶的異常。 如果是這種情況,則存在潛在的問題,並且此錯誤正在隱藏它。

請對上述問題添加評論,因為這將有助於維護人員跟蹤此問題的普遍性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM