在Hackage中有一些我想使用的特定于平台的库(例如inotify,kqueue)。然而,关于如何使用条件编译在平台之间切换的文档似乎有点稀疏。我在寻找相关文档时遇到了一些麻烦...
我希望这里的文档对其他人也有帮助,所以值得一提的是其他常见的平台。到处找这些东西是愚蠢的。
发布于 2012-12-10 22:20:55
os_HOST_OS
标志与C预处理器选项-cpp
(或使用{-# LANGUAGE CPP #-}
)的组合,如< GHC documentation extensions: CPP
to your package description to your package description,如Cabal documentation所示,并定义一个自定义标志,如下所示:if os(linux) cpp-options:-DINOTIFY if os(darwin) cpp-options:-DKQUEUE
然后,您可以在源代码中使用#ifdef
。
https://stackoverflow.com/questions/13799199
复制相似问题