1

我有一个只能用 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

4

1 回答 1

2

当您手动指定目标文件时,GHCi 无法判断目标文件依赖于什么,它可以对.hs文件执行哪些操作,因为它可以访问import ...这种情况下的行。

因此,您需要手动添加所有相关依赖项的目标文件,在这种情况下-package monad-control,在调用 GHCi 时添加 ,。

于 2012-05-24T20:09:47.767 回答