Hackageには、使用したいプラットフォーム固有のライブラリがいくつかあります(inotify、kqueueなど)。しかし、条件付きコンパイルを使用してプラットフォーム間を切り替える方法に関するドキュメントは少しばかり見えます。関連するドキュメントを見つける際に問題が発生しています...Haskellでプラットフォームに依存しないコードを書く方法(ghc)
どのプリプロセッサ定義を使ってプラットフォームを切り替えることができますか?
inotify/kqueueをそれぞれlinux/osxに組み込む/除外するようにカバールファイルを設定するにはどうすればよいですか?
ここに記載されていることが他の人にとっても役立つことが期待されますので、他の共通プラットフォームについて言及する価値があります。場所のいたるところでこのようなものを探すのはばかげている。
可能であれば、CPPを使用するのではなく、異なるパッケージを組み込むためにos_HOST_OSを使用することをお勧めします。 –
異なるオペレーティングシステムで異なる書き方が必要なモジュール全体がある場合、カバールの 'os'ブロックを使用してソースツリー全体を選択することもできます。 'cpp-options'ブロックを内部に置くのではなく、' hs-source-dirs'ブロックを内部に置きます。 –
ありがとう、良い答え –