我有一个相当大的haskell项目,在一些文件上运行ghci可能需要编译数十或数百个模块,然后才会出现提示,这可能需要几分钟的时间。我使用的是cabal,所以我通常已经在dist/下编译了目标文件。但是ghci只查找源.hs文件旁边的.o文件;它不知道cabal的dist/。有没有什么简单而好的方法可以让ghci加载这些目标文件,而不是自己重新编译所有内容?
我要求的是一种简单而好的方法,因为我有复杂而丑陋的方法。:)例如,这将使ghci重用cabal编译的模块。我想出了这个命令行,通过复制和修改cabal运行ghc的方式,确保它将所有内容设置为与上次的cabal构建相同,这是确保ghci将加载模块所必需的。
ghci package-conf dist/package.conf.inplace -i -idist/ -i /git-附件/git-附件-tmp。-idist/build/autogen -Idist/build/autogen -Idist/build/git-autogen/git-autogen tmp- dist/build/git-annex/git-annex-tmp/Utility/libdiskfree.o dist/build/git-annex/git-annex-tmp/Utility/libmounts.o -include-optPdist/build/autogen/cabal_MACRIONS.h -odir dist/build/git-autogen/git-autogen tmp -hidir dist/build/git-autogen/git-autogen tmp -stubdir dist/build/git-autogen/git-autogen tmp -XHaskell98 Idist
在我看来,应该有一个"cabal ghci“可以计算这个命令行并运行它,或者可能有一个我不知道的工具已经可以这样做了。
发布于 2013-03-01 03:15:52
您可以将odir和ohi选项设置为指向cabal构建目录,如下所示:http://www.haskell.org/ghc/docs/7.6.1/html/users_guide/separate-compilation.html#output-files
https://stackoverflow.com/questions/15125825
复制相似问题