Haskell在emacs中加载模块问题

时间:2011-07-05 10:25:13

标签: haskell emacs module

我在emacs中有2个Haskell模块:Mod1.hs和Mod2.hs

Mod1.hs:

module Mod1 where
...

在第二个模块中,我尝试导入第一个模块:

import Mod1

但是得到错误:

 Could not find module `Mod1':
      Use -v to see a list of the files searched for.
Failed, modules loaded: none.

在emacs中,我使用标准的Haskell模式。 Mod1.hs和Mod2.hs文件位于同一目录中。

我该如何解决?

谢谢。

2 个答案:

答案 0 :(得分:5)

您需要设置在Emacs中运行的解释器的搜索路径,以包含文件所在的目录。在GHCi翻译中做:

Prelude> :cd /home/you/projects/yourproject

当然,用/home/you/projects/yourproject文件的路径替换.hs。 (在解释器中执行:!pwd以打印当前路径。)然后您应该能够:

Prelude> :l Mod2

(或C-c C-l缓冲区中的Mod2.hs。)有关详细信息,请参阅the GHC user guide

答案 1 :(得分:2)

如果你把它放在.emacs中,这可能会有所帮助:

(setq inferior-haskell-find-project-root nil)

它告诉ghci不要从当前目录移动。