我目前正在使用大量本机代码的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中?还是全球范围内的计算机?

最佳答案

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

关于haskell - 如何为沙箱中的所有包裹设置Cabal Extra Dirs,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23008805/

10-10 22:26