GHC包是隐藏的

时间:2014-10-01 15:52:23

标签: haskell ghc

我试图运行这个来自Haskell wiki的简单示例。

import GHC
import GHC.Paths ( libdir )
import DynFlags

main = 
    defaultErrorHandler defaultFatalMessager defaultFlushOut $ do
      runGhc (Just libdir) $ do
        dflags <- getSessionDynFlags
        setSessionDynFlags dflags
        target <- guessTarget "test_main.hs" Nothing
        setTargets [target]
        load LoadAllTargets

我收到的错误消息是:

amy@wombat$ ghc --make amy15.hs 

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

amy15.hs:3:8:
    Could not find module ‘DynFlags’
    It is a member of the hidden package ‘ghc-7.8.3’.
    Use -v to see a list of the files searched for.

现在,ghc-7.8.3正是我用来编译的,所以显然已经安装了包。

amy@wombat$ cabal info ghc
* ghc              (library)
    Versions available: [ Not available from server ]
    Versions installed: 7.8.3
... and so on

为什么GHC不能看到ghc包裹?

2 个答案:

答案 0 :(得分:8)

显然默认情况下会隐藏ghc包,至少如果你按照我的方式手动安装ghc,而不是安装Haskell平台。所以我需要&#34; un-hide&#34;包装如下:

sudo ghc-pkg expose ghc

答案 1 :(得分:5)

大多数软件包确实是隐藏的。

要暂时取消隐藏,您可以使用ghc --make amy15.hs -package ghc-7.8.3

要永久取消隐藏,请使用@mhwombat建议的方法。