我试图运行这个来自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
包裹?
答案 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建议的方法。