如何使用 runhaskell 取消隐藏 ghc 库
How can I unhide ghc library using runhaskell
我正在使用 runhaskell
构建简单的脚本,我尝试使用 ghc-7.10.2
中的 FastString
。只需:
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 库?
TL;DR:
$ ghc-pkg expose ghc
嗯,runhaskell
基本上是 runghc
的包装,而 runghc
基本上是 ghc
。它们都遵循相同的规则:它们只能从您配置的数据库中导入 exposed 包。
使用ghc-pkg describe {package-name}
,可以获得关于某个包的信息。这里重要的字段是exposed
:
$ ghc-pkg describe ghc | grep expose
exposed: False
exposed-modules:
如您所见,包没有公开(因此它是隐藏的)。使用 ghc-pkg expose
,您可以取消隐藏它:
$ ghc-pkg expose ghc
请记住,如果您要更改系统范围的程序包数据库的设置,则需要权限。
我正在使用 runhaskell
构建简单的脚本,我尝试使用 ghc-7.10.2
中的 FastString
。只需:
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 库?
TL;DR:
$ ghc-pkg expose ghc
嗯,runhaskell
基本上是 runghc
的包装,而 runghc
基本上是 ghc
。它们都遵循相同的规则:它们只能从您配置的数据库中导入 exposed 包。
使用ghc-pkg describe {package-name}
,可以获得关于某个包的信息。这里重要的字段是exposed
:
$ ghc-pkg describe ghc | grep expose
exposed: False
exposed-modules:
如您所见,包没有公开(因此它是隐藏的)。使用 ghc-pkg expose
,您可以取消隐藏它:
$ ghc-pkg expose ghc
请记住,如果您要更改系统范围的程序包数据库的设置,则需要权限。