我正在开发一个 Haskell 项目(Happstack 服务器 + Blaze HTML/前端作为主要库),我想添加一个静态数据目录。
看起来你可以使用 Cabal 使用自动生成的Path_<package_name>
模块。所以在我的示例中,该包称为new-website
,所以应该调用该模块Paths_new_website
.
链接到 Cabal 文档:自定义包的Paths_pkgname module. http://www.haskell.org/ghc/docs/7.0.3/html/Cabal/authors.html#paths-module
从命令行并使用cabal repl
,我正在尝试确认我可以访问Paths_
模块。然而,我发现Paths_new_website
运行时 Cabal 未导入模块cabal_repl
.
这是通过要点链接到一些相关代码和终端输出的链接。 https://gist.github.com/mecampbellsoup/8832825
有谁有这方面的经验,让一个挑剔的 Paths_ 模块与我的包一起加载?我怀疑这可能是一个词法范围的问题Main.hs
(主要源文件)与上下文cabal_repl
...
Paths_*
模块仅由 Cabal 在构建期间生成。如果您正在使用以下命令运行该包GHCi
or cabal repl
那么它们根本就不存在,并且您的代码将因“找不到模块”错误而失败。
不过,有一个偷偷摸摸的开发模式技巧:只需构建自己的开发模式即可Paths_*
模块并将其放入您的haskell-source-dir
。在开发过程中,GHCi
将加载该模块,您可以调整其导出的符号以使您的开发环境顺利运行。在构建过程中,Cabal 将用自己的模块覆盖您的模块,并考虑构建所需的最终信息Paths_*
module.
所以在这种特殊情况下,只需创建一个文件src/Paths_stackbuilders.hs
并为其提供相对路径datadir
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)