3

我目前正在开发一个使用大量本机代码的 Haskell 项目。这意味着 cabal 必须可以访问包含文件和库。我通过 --extra-lib-dirs 和 --extra-include-dirs 命令行标志来做到这一点。

我还使用 cabal 沙箱功能来避免全局依赖地狱。

问题是 cabal 经常需要重新安装我的一些包并因此重建它们,这需要本机包含文件和库。因此,在构建我的任何包时,我必须在命令行中指定 --extra-lib-dirs 和 --extra-include-dirs,即使对于那些不需要本机代码的包也是如此,这很烦人。

我知道我可以在 .cabal 文件中使用 extra-lib-dirs 和 extra-include-dirs ,但是那些不允许使用相对路径,而且我不喜欢将计算机上具有绝对路径的文件提交到集中存储库。

所以我想知道,有没有办法为沙箱中的所有包添加目录到 extra-lib-dirs 或 extra-include-dirs ?或者可能是全球范围内的计算机?

4

1 回答 1

3

您可以简单地cabal.config在沙箱所在的目录中创建一个本地。(不要修改cabal.sandbox.config,因为该文件是自动生成的。)

于 2014-04-11T10:36:42.273 回答