cabal:如何将文本文件添加为构建依赖项

时间:2013-03-31 15:42:57

标签: haskell cabal

我使用一个简单的文本文件来生成一些使用TemplateHaskell和runIO的代码。

...    
curdir <- runIO $ getCurrentDirectory
addDependentFile $ curdir ++ "/spec.txt"
bs <- runIO $ BS.readFile "spec.txt"
...

与ghci一起使用时,一切都很好用。问题是,cabal不知道我需要那个文件来构建,当我cabal build时,我得到了这个。

Exception when trying to run compile-time code:
  spec.txt: openFile: does not exist (No such file or directory)

1 个答案:

答案 0 :(得分:2)

看看标志数据文件:

http://www.haskell.org/cabal/users-guide/developing-packages.html#accessing-data-files-from-package-code

顺便说一句,我推荐EclipseFP用于你的工作。它提供了编辑cabal文件的便捷方式。 这就是我能找到那面旗帜的原因。 它真的减少了琐碎的工作。

http://www.haskell.org/haskellwiki/Haskell_IDE#EclipseFP_plugin_for_Eclipse_IDE

=============================================== ==============================

抱歉误会。

我认为cabal在这里并不重要。 ghc在编译时运行 openFile

这意味着openFile仍在另一个“运行时”运行以生成代码。

“运行时”结果只是找不到文件

也许目前的目录并不像你想象的那样。

尝试使用 setCurrentDirectory 或显示 curdir 并在 getCurrentDirectory

之前检查

如果不起作用。请显示完整的测试代码