我在 Hackage 上维护了一个带有 FFI 绑定的库。所以我的 Haskell 库依赖于对应的 C 库及其头文件。现在我在.cabal
文件中指定外部依赖项,如下所示:
PkgConfig-Depends:
libfoo >= 1.2
它在 Linux 中对我很有效。但是,我有一个库的用户报告说,pkg-config
在 Windows 上安装相当麻烦,相反他更喜欢
Includes:
foo.h
Extra-libraries:
foo
我希望我的库尽可能易于构建,并且不想强制构建并非严格要求的依赖项。但是,我看到Cabal 手册建议使用PkgConfig-Depends
.
我的问题:
- 对于跨平台软件包,我应该更喜欢哪种方式?
- 是否有可能以
.cabal
这样的方式编写文件,它可以使用pkg-config
和不使用? - 而且,顺便说一句,
pkg-config
包含在 Haskell 平台中(我现在没有要检查的 Windows 机器)?