当我在 Haskell 项目中使用 Cabal 的各种MIN_VERSION_
宏时,如何确保在我不使用 cabal 时正确定义它们,例如在 GHCi 中进行测试时?
问问题
1989 次
1 回答
21
如今,cabal
支持一个cabal repl
子命令,它为您完成所有设置,因此至少ghci
以下是不必要的。尽管如此:
该cabal build
命令生成文件dist/build/autogen/cabal_macros.h
,其中包含您需要的所有定义。为了在 ghc 调用中包含该文件,您需要 flags -optP-include -optPdist/build/autogen/cabal_macros.h
。
为方便起见,您可以将以下内容放在.ghci
项目目录中的文件中:
:set -optP-include -optPdist/build/autogen/cabal_macros.h
这样您就不必每次想使用 ghci 时都输入选项。
但请注意:宏将根据您上次运行时的配置进行定义cabal build
,并且在您安装新软件包或使用不同的 GHC 版本时不会更新:为此您需要重新配置和重建软件包。
(感谢图书馆名单上的 Simon Hengel 提供了这种智慧:http ://www.haskell.org/pipermail/libraries/2012-September/018491.html )。
于 2012-09-22T18:52:39.520 回答