如何链接到本地Haskell库?

如何链接到本地Haskell库?,haskell,haskell-stack,Haskell,Haskell Stack,目前有两个项目,每个项目都有stack和cabal文件(我使用stack来构建),一个是名为test的exe,另一个是名为testlib的库。我想在测试项目中使用testlib,我可以做些什么让stack知道testlib是一个自定义库以及如何找到它 -- projects/test/test.yaml -- projects/testlib/testlib.yaml 我找到了答案 解决问题 而test.yaml似乎是: ... extra_deps: - ../testlib-1.0.0 .

目前有两个项目,每个项目都有stack和cabal文件(我使用stack来构建),一个是名为test的exe,另一个是名为testlib的库。我想在测试项目中使用testlib,我可以做些什么让stack知道testlib是一个自定义库以及如何找到它

-- projects/test/test.yaml
-- projects/testlib/testlib.yaml
我找到了答案

解决问题

而test.yaml似乎是:

...
extra_deps:
- ../testlib-1.0.0
...
应注意两点:

  • 路径应相对于包含test.yaml的目录
  • 目标库的名称应类似于LIBNAME-verinfo 1.verinfo 2


  • 我们欢迎任何更好的解决方案。非常感谢你的帮助

    您可以根据口味使用
    额外的dep
    包装<当额外库(
    testlib
    在您的示例中)是开发工作的一部分时,应该使用code>packages
    ,当您有一个稳定的发行版时,应该使用
    extra-dep


    有更多的细节。

    testlib多久更改一次?我过去一直在努力解决这个问题,一种不污染
    测试
    代码库的简单方法是安装
    testlib
    。当我使用cabal时,你可以为这样一个项目集创建一个沙箱,然后在那里安装所有东西。尽管如此,由于堆栈在定义上并没有包冲突,所以只需全局安装包就可以了。但是,如果您想经常在这两个项目中编写代码,并在各自的构建中看到更改,请至少准备忍受这种设置带来的一些麻烦。请将您的答案作为答案发布在下面。(所以我不能评论我为什么不喜欢它;)@BartekBanachewicz谢谢你的回复;)我使用的图书馆变化不大。还有更好的办法吗?我查看了堆栈配置文档,只发现这个配置项可能有用。