如何使用Cabal创建的目标文件?

时间:2012-05-24 19:58:45

标签: haskell ghci

我有一个只能用Cabal编译的源文件。它是测试代码,在过去(在我复制我的Haskell环境之前),我将在ghci中运行函数。 我知道ghci可以使用目标文件来加载代码,但是当我尝试这样做时,我得到以下错误。那我错过了什么?

[mlitchard @ Boris Boris_Test] $ ghci /home/mlitchard/Boris_Test/dist/build/Boris_Test/Boris_Test-tmp/Main.o

GHCi, version 7.4.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading object (static) /home/mlitchard/Boris_Test/dist/build/Boris_Test/Boris_Test-tmp/Main.o ... done
final link ... ghc: /home/mlitchard/Boris_Test/dist/build/Boris_Test/Boris_Test-tmp/Main.o: unknown symbol

monadzmcontrolzm0zi3zi1zi3_ControlziMonadziTransziControl_zdfMonadBaseControlIOIO_closure' linking extra libraries/objects failed

1 个答案:

答案 0 :(得分:2)

当您手动指定目标文件时,GHCi无法分辨目标文件所依赖的内容,它可以使用.hs文件,因为它可以访问import ...行中的-package monad-control行。那种情况。

因此,在调用GHCi时,需要手动添加所有相关依赖项的目标文件,在这种情况下通过添加{{1}}。