我使用一个简单的文本文件来生成一些使用TemplateHaskell和runIO的代码.
...
curdir <- runIO $ getCurrentDirectory
addDependentFile $ curdir ++ "/spec.txt"
bs <- runIO $ BS.readFile "spec.txt"
...
Run Code Online (Sandbox Code Playgroud)
与ghci一起使用时,一切都很好用.问题是cabal不知道我需要那个文件来构建,而当我这样做时我会得到这个cabal build.
Exception when trying to run compile-time code:
spec.txt: openFile: does not exist (No such file or directory)
Run Code Online (Sandbox Code Playgroud)
小智 2
看一下标志数据文件:
顺便说一句,我推荐 EclipseFP 适合您的工作。它提供了一种编辑 cabal 文件的便捷方法。这就是为什么我能找到那面旗帜。确实减少了琐碎的工作。
http://www.haskell.org/haskellwiki/Haskell_IDE#EclipseFP_plugin_for_Eclipse_IDE
=================================================== ===========================
我为我的误会道歉。
我认为阴谋在这里并不重要。ghc在编译时运行openFile 。
这意味着 openFile 仍然在另一个“运行时”运行以生成代码。
“运行时”结果只是找不到文件
也许当前目录不是你想象的那样。
尝试使用setCurrentDirectory或 show curdir并在getCurrentDirectory之前检查它
如果它不起作用。请显示完整代码以进行测试