首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载具有依赖关系的Haskell模块

加载具有依赖关系的Haskell模块
EN

Stack Overflow用户
提问于 2016-05-03 01:15:55
回答 1查看 392关注 0票数 3

我不知道我的问题是什么。我有三个模块A.hs、B.hs和C.hs。它们都位于C:\..path...\folder上,模块B和C都是从A进口的。

也就是说,模块B和C都包含行import A

我可以在gchi中使用:l C:\..path..\folder\A.hs并播放它的内容;但是,当我尝试:l C:\..path..\folder\B.hs:l C:\..path..\folder\C.hs时,ghci会给出以下错误

代码语言:javascript
复制
    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中的模块?或者,为什么导入在编译时成功,但在加载时失败;尤其是当被导入的模块本身是可加载的时候?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-03 01:51:13

默认情况下,ghci只在当前目录中搜索导入的模块。首先,当前目录是用来启动ghci的目录;但是可以使用:cd命令在ghci中更改它。因此,你可以

代码语言:javascript
复制
> :cd C:\...path...\folder
> :l B.hs

这应该可以在现在的目录中找到B.hsA.hs。另外(特别是如果您在多个目录中有模块),您可以使用-i命令行选项启动ghci,将目录添加到其模块搜索路径中。例如,在命令提示符中,您可以

代码语言:javascript
复制
% ghci -iC:\...path...\folder
> :l B.hs

它将指示ghci在其搜索路径中包括C:\...path...\folder,因此,即使它不是当前目录,也可以在那里找到B.hsA.hs

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36994085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档