【发布时间】:2018-07-11 00:39:00
【问题描述】:
我想创建一个 Haskell Stack 包,其中包含另一个 Haskell Stack 包作为extra-dep。有问题的是,我试图包含的包是使用 Haskell 的 FFI 绑定到某些 C 代码的。
如果我只是 stack unpack 和 stack build 那个包 (HasCacBDD) 它工作得很好,但是当我将它包含为 extra-dep Stack 抱怨缺少库。
查看该原始包的Setup.hs,我发现它基本上创建了一个名为libHasCacBDD.a 的静态库,并将其放在.stack-work 路径内的正确文件夹中以供链接。当我将它包含在我自己的项目中时,正是这个库给了我一个错误。
仔细查看我自己项目的.stack-work文件夹,发现上面提到的libHasCacBDD.a确实在某个地方隐藏的目录中。幸运的是,该库正在正确构建,但我的项目找不到它。
Haskell Stack 官方文档说明了在这种情况下该怎么做,但我认为它不够具体,无法给我一个满意的答案。
我需要做的是将libHasCacBDD.a 库存储为extra-lib-dirs 选项的路径。尽管如此,我不知道如何以独立于平台的方式做到这一点(如果我在我的计算机中硬编码路径,它只会在其中工作,在这种情况下做一个包的意义何在)。
我创建了一个issue on Github,其中包含有关详细信息的更多信息。
有什么建议吗?
【问题讨论】:
标签: haskell haskell-stack