我在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文件位于同一目录中。
我该如何解决?
谢谢。
答案 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不要从当前目录移动。