11

HaskellプロジェクトでCabalのさまざまなMIN_VERSION_マクロを使用する場合、GHCiでテストする場合など、cabalを使用していないときに、それらがすべて正しく定義されていることを確認するにはどうすればよいですか?

4

1 に答える 1

21

現在、すべてのセットアップを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 Hengelに感謝します:http://www.haskell.org/pipermail/libraries/2012-September/018491.html)。

于 2012-09-22T18:52:39.520 に答える