如何使用runhaskell取消隐藏ghc库

9

我正在使用 runhaskell 构建一个简单的脚本,尝试使用来自 ghc-7.10.2FastString。简单来说:

import FastString

main = putStrLn "Hello SO"

使用runhaskell Main.hs运行它会导致错误:

Main.hs:1:8:
    Could not find module ‘FastString’
    It is a member of the hidden package ‘ghc-7.10.2’.
    Use -v to see a list of the files searched for.

我知道我可以使用 cabal 并指定 ghc 作为依赖项来构建它,但我真的需要使用 runhaskell 来完成它。
如何使用runhaskell取消隐藏ghc库?
1个回答

5

简而言之:

$ ghc-pkg expose ghc

嗯,runhaskell基本上是runghc的包装器,而runghc基本上是ghc。它们都遵循相同的规则:只能从您配置的数据库中导入公开的软件包。

使用ghc-pkg describe {package-name},可以获取有关某个软件包的信息。这里重要的字段是exposed

$ ghc-pkg describe ghc | grep expose
exposed: False
exposed-modules:

从上面可以看出,软件包是不可见的(因此它是隐藏的)。使用ghc-pkg expose命令,你可以将其显示出来:

$ ghc-pkg expose ghc

请记住,如果您要更改系统范围的软件包数据库的设置,则需要权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接