当我尝试加载时,Eval.hs
中Data.hs
导入模块Eval.hs
中的模块TI.Data
和Data.hs
中有两个文件交互式Eval.hs
(在emacs haskell模式下:Ctrl-c, Ctrl l
),它说找不到Data.hs
中定义的模块,但是之前它已成功加载,为什么突然它不能??
顺便说一下,我注意到我第一次执行Ctrl-c, Ctrl l
,即交互窗口:
GHCi, version 6.12.1: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> :cd ~/.cabal/
Prelude> :load "../hs/TI/Eval.hs"
../hs/TI/Eval.hs:2:7:
Could not find module `TI.Data':
Use -v to see a list of the files searched for.
Failed, modules loaded: none.
答案 0 :(得分:6)
我有时在Emacs上遇到与haskell-mode相同的问题。我的解决方法是
Prelude> :cd ~/hs/TI
Prelude> :load "Eval.hs"
现在,当您想重新加载模块时,必须使用
Prelude> :r
而不是Ctrl-C,Ctrl-l。
如果有人知道更好的方法,请告诉我。
-deech
答案 1 :(得分:0)
尝试:
Prelude> :cd ~/hs
Prelude> :load "TI/Eval.hs"
如果模块实际上与Subdirectory.Contains.A
类似,那么工作目录必须是目录Subdirectory
。
答案 2 :(得分:0)
尝试添加
(inferior-haskell-find-project-root nil)
到自定义设置变量。它将不再是:cd。
一个更好的解决方案是找出为什么inf-haskell.el
中的函数不能正常工作
答案 3 :(得分:0)
简单地运行
:set -isrc -imyothersrcdir
添加任何源目录。您可以将此行放在运行GHCi的目录中的.ghci文件中。
或者只使用cabal repl,它会根据您的cabal文件为您执行此操作。