Windows – 如何指定对.cabal中外部C库的依赖?

前端之家收集整理的这篇文章主要介绍了Windows – 如何指定对.cabal中外部C库的依赖?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Hackage上维护一个带有FFI绑定的库.所以我的 Haskell库依赖于相应的C库及其头文件.现在我在.cabal文件中指定外部依赖关系,如下所示:
PkgConfig-Depends:
      libfoo >= 1.2

它在Linux中对我来说很好.但是,我有一个库的用户报告,在Windows上安装pkg-config是相当麻烦,而他喜欢

Includes:
      foo.h
Extra-libraries:
      foo

我希望我的库尽可能容易地构建,并且不希望强制不是严格要求的构建依赖关系.但是,我看到Cabal manual建议使用PkgConfig-Depends.

我的问题:

>我应该选择哪种方式进行跨平台包?
>可以这样写一个.cabal文件,它可以与pkg-config一起使用吗?
>而且,顺便说一句,pkg-config包含在Haskell平台中(我现在没有Windows机器来检查)?

pkg-config方法是最好的,因为pkg-config知道在哪里可以找到include和library文件,这些文件可能在某些系统上的非标准位置.

您可以编写.cabal文件以使用这两种方法.如图所示,使用一个标志的优点是,如果默认值失败,Cabal会自动尝试其他标志值. (以下示例未测试)

Flag UsePkgConfig
  Description: Use pkg-config to check for library dependences
  Default: True

Executable hax
  if flag(UsePkgConfig)
    PkgConfig-Depends: libfoo >= 1.2
  else
    Includes: foo.h
    Extra-libraries: foo

猜你在找的Windows相关文章