0

好的,当我使用 GHC 进行编译时,我一直在使用-icompile 选项将文件夹指定到某个 haskell 源。

ghc -threaded -i/d/haskell/src --make xxx.hs

我知道它在编译时将这些文件用作“库”,但我可以在 GHCi 中做同样的事情吗?

我通常导入 haskell 预打包的库,例如import Data.List:m +Data.List.

我试过了import /d/haskell/src——不行!

从 Haskell 文档编辑:第 2 章使用 GHCi 请注意,在 GHCi 和––make模式中,该-i选项用于指定源文件的搜索路径,而在标准批处理编译模式中,该-i选项用于指定接口文件的搜索路径。

4

2 回答 2

2

'-i' 标志很好,问题在于加载模块。

在 ghci 中,:m只会切换到预编译模块或在命令行上指定的模块。你需要用来:add MyModule告诉 ghci 编译一个 Haskell 源文件。

如果你有

./src/Module/SubModule.hs

您可以使用以下内容加载它:

localuser$ ghci -isrc
GHCi, version 7.0.3: 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 package ffi-1.0 ... linking ... done.
Prelude> :add Module.SubModule
[1 of 1] Compiling Module.SubModule        ( src/Module/SubModule.hs, interpreted )
Ok, modules loaded: Module.SubModule.
*Module.SubModule>
于 2011-06-24T11:15:39.810 回答
0

我想你可以说:set -i /d/haskell/src;许多(但不是全部)GHC 选项可以这样设置。或者,您应该能够直接将其用作参数: ghci -i /d/haskell/src.

于 2011-06-24T10:03:08.847 回答