当我使用惊天动地的各种MIN_VERSION_
宏在Haskell的项目,我怎么能保证我在GHCI测试时我不使用阴谋,例如它们都正确定义?
Answer 1:
如今, cabal
支持cabal repl
子,这为您完成所有的设置,所以至少ghci
下面是不必要的。 然而:
该cabal build
命令生成的文件dist/build/autogen/cabal_macros.h
,其中包含所有你需要的定义。 为了包括在GHC调用该文件,你需要标志-optP-include -optPdist/build/autogen/cabal_macros.h
。
为方便起见,你可以放置在以下.ghci
在项目目录中的文件:
:set -optP-include -optPdist/build/autogen/cabal_macros.h
这样你就不必键入出的选项要使用ghci的每一次。
当心,虽然:宏将根据您上次运行配置被定义cabal build
,以及在安装新的软件包,或者使用不同版本的GHC将不会更新:对于你需要重新配置,重建包。
(感谢Simon亨格尔库列表这个智慧于: http://www.haskell.org/pipermail/libraries/2012-September/018491.html )。
文章来源: How do I use cabal's MIN_VERSION_ and other macros with ghci?