0

我正在尝试使用 : 在 Windows 上安装 hlint cabal install hlint,但出现以下错误:

   Preprocessing executable 'hlint' for hlint-1.8.50..
Building executable 'hlint' for hlint-1.8.50..

<no location info>: warning: [-Wmissing-home-modules]
    These modules are needed for compilation but not listed in your .cabal file's other-modules:
        Apply
        CmdLine
        HLint
        HSE.All
        HSE.Bracket
        HSE.Evaluate
        HSE.Match
        HSE.NameMatch
        HSE.Type
        HSE.Util
        Hint.All
        Hint.Bracket
        Hint.Duplicate
        Hint.Extensions
        Hint.Import
        Hint.Lambda
        Hint.List
        Hint.ListRec
        Hint.Match
        Hint.Monad
        Hint.Naming
        Hint.Pragma
        Hint.Structure
        Hint.Type
        Hint.Util
        Idea
        Language.Haskell.HLint
        Parallel
        Proof
        Report
        Settings
        Test
        Util
[ 1 of 35] Compiling HSE.Type         ( src\HSE\Type.hs, dist\build\hlint\hlint-tmp\HSE\Type.o )

src\HSE\Type.hs:6:1: error:
    Could not find module `Language.Haskell.Exts.Annotated'
    Perhaps you meant
      Language.Haskell.Exts.Syntax (from haskell-src-exts-1.23.1)
      Language.Haskell.Exts.Pretty (from haskell-src-exts-1.23.1)
      Language.Haskell.Exts.Build (from haskell-src-exts-1.23.1)
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
  |
6 | import Language.Haskell.Exts.Annotated as Export hiding (parse, loc, parseFile, paren, Assoc(..))
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cabal.exe: Failed to build hlint-1.8.50. See the build log above for details.

Glorious Glasgow Haskell 编译系统,版本 9.2.1,hlint-1.8.50

4

1 回答 1

0

根据 Neil Mitchell 的评论“没有已发布的 HLint 版本可以与 GHC 9.2.1 一起使用(因为它的一些依赖项尚未准备好)”不可能使用已安装的 GHC 9.2.1 运行 HLint默认情况下使用 Chocolatey 和 Haskell Platform for Windows。

但是,我找到了一种解决方法。我为 Windows 安装了 GHCup:

Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $true

GHCup 安装 cabal 和 ghc 8.10.7,与 HLint 完美兼容。为了安装 HLint 我跑了:

cabal update
cabal install hlint

之后将新创建的 hlint 二进制文件的位置添加到 PATH。瞧:一切都像魅力一样!

于 2021-12-14T01:32:14.333 回答