首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用Haskell (ghc)编写与平台无关的代码

如何用Haskell (ghc)编写与平台无关的代码
EN

Stack Overflow用户
提问于 2012-12-10 18:35:50
回答 1查看 886关注 0票数 20

在Hackage中有一些我想使用的特定于平台的库(例如inotify,kqueue)。然而,关于如何使用条件编译在平台之间切换的文档似乎有点稀疏。我在寻找相关文档时遇到了一些麻烦...

  1. 可以使用哪些预处理器定义在平台之间切换?
  2. 如何在linux/osx上设置cabal文件以分别包含/排除inotify/kqueue?

我希望这里的文档对其他人也有帮助,所以值得一提的是其他常见的平台。到处找这些东西是愚蠢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-10 22:20:55

  1. 查看os_HOST_OS标志与C预处理器选项-cpp (或使用{-# LANGUAGE CPP #-})的组合,如< GHC documentation
  2. Add 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

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13799199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档