Mar*_*ark 5 emacs haskell cabal
我正在开展一个项目,我正在使用Cabal进行管理.我已经指定了源文件,模块,所有东西的目录.我的所有文件都与相应的模块具有相同的名称,保留了大小写.
我可以:
$ cabal configure
$ cabal build
Run Code Online (Sandbox Code Playgroud)
没有问题.
但是,想象一下我Module在文件中有一个模块Module.hs,并且文件File.hs在同一目录中.现在,当我尝试File.hs从Emacs 加载进行测试时,我得到以下内容:
____Could not find module ‘Module’
It is a member of the hidden package ‘ghc-7.8.3’.
Use -v to see a list of the files searched for.
Failed, modules loaded: none.
Run Code Online (Sandbox Code Playgroud)
全部内容File.hs:
module File where
import Module
Run Code Online (Sandbox Code Playgroud)
如何让它找到我的项目的文件?
您可以通过Cabal启动REPL,如下所示:
#cutal repl
这与运行相同ghci,但会考虑cabal安装本地或沙箱包存储库所安装的任何其他依赖项.
您需要告诉 GHCi 在哪里可以找到您的源文件。例如,如果你的项目目录是./foo并且你有你的源文件,./foo/src你需要说(来自你的项目目录):
:set -isrc
Run Code Online (Sandbox Code Playgroud)
在 GHCi 中的命令提示符处。然后,您将可以访问加载了C-c C-l.
您还需要确保您没有cabal install编辑您的包,否则将加载包,而不是项目源文件。