正在加载 Haskell 个具有依赖项的模块
Loading Haskell Modules that have dependencies
我不确定我的问题出在哪里。我有三个模块 A.hs、B.hs 和 C.hs。所有都位于 C:\..path...\folder
并且模块 B 和 C 都从 A.
导入
也就是说,模块 B 和 C 都包含行 import A
我可以 :l C:\..path..\folder\A.hs
在 gchi 中玩它的内容;但是,当我尝试 :l C:\..path..\folder\B.hs
或 :l C:\..path..\folder\C.hs
时,ghci 给出了以下错误
Could not find module `A'
Use -v to see a list of the files searched for.
Failed, modules loaded: none.
我觉得这很奇怪,因为我没有遇到编译 B.hs 到 B.exe 和 运行 可执行文件的问题。我如何编译和 运行 一个我无法加载到 ghci 的模块?或者,为什么导入在编译时成功但加载失败;特别是当被导入的模块本身是可加载的时?
默认情况下,ghci
仅在当前目录中搜索导入的模块。首先,当前目录是用于启动的目录 ghci
;但它可以在 ghci
中使用 :cd
命令进行更改。因此,您可以
> :cd C:\...path...\folder
> :l B.hs
这应该在现在的当前目录中找到 B.hs
和 A.hs
。或者(特别是如果您在多个目录中有模块)您可以使用 -i
命令行选项启动 ghci 以将目录添加到其模块搜索路径。例如,在您的命令提示符下,您可能
% ghci -iC:\...path...\folder
> :l B.hs
这将指示 ghci
在其搜索路径中包含 C:\...path...\folder
,因此即使它不是当前目录,也会在那里找到 B.hs
和 A.hs
。
我不确定我的问题出在哪里。我有三个模块 A.hs、B.hs 和 C.hs。所有都位于 C:\..path...\folder
并且模块 B 和 C 都从 A.
也就是说,模块 B 和 C 都包含行 import A
我可以 :l C:\..path..\folder\A.hs
在 gchi 中玩它的内容;但是,当我尝试 :l C:\..path..\folder\B.hs
或 :l C:\..path..\folder\C.hs
Could not find module `A'
Use -v to see a list of the files searched for.
Failed, modules loaded: none.
我觉得这很奇怪,因为我没有遇到编译 B.hs 到 B.exe 和 运行 可执行文件的问题。我如何编译和 运行 一个我无法加载到 ghci 的模块?或者,为什么导入在编译时成功但加载失败;特别是当被导入的模块本身是可加载的时?
默认情况下,ghci
仅在当前目录中搜索导入的模块。首先,当前目录是用于启动的目录 ghci
;但它可以在 ghci
中使用 :cd
命令进行更改。因此,您可以
> :cd C:\...path...\folder
> :l B.hs
这应该在现在的当前目录中找到 B.hs
和 A.hs
。或者(特别是如果您在多个目录中有模块)您可以使用 -i
命令行选项启动 ghci 以将目录添加到其模块搜索路径。例如,在您的命令提示符下,您可能
% ghci -iC:\...path...\folder
> :l B.hs
这将指示 ghci
在其搜索路径中包含 C:\...path...\folder
,因此即使它不是当前目录,也会在那里找到 B.hs
和 A.hs
。