2016-05-12 58 views
0

创建一个新的项目后:添加依赖解析错误

$cd myproject 
$stack new workbench 
$cd workbench/ 
$stack setup 

我试图通过更新添加此ZeroMQ库我workbench.cabal

$cat workbench.cabal 
name:    workbench 

... 

library 
    hs-source-dirs:  src 
    exposed-modules:  Lib 
    build-depends:  base >= 4.7 && < 5 # my note: line 19 
         zeromq4-haskell 
    default-language: Haskell2010 

但是,我得到的运行stack clean时,以下几点:

​​

我在做什么错?

+7

尝试在依赖项之间添加逗号,例如, 'base> = 4.7 && <5,zeromq-haskell' - 即使它们在不同的行上。 – ErikR

+3

@ErikR这不是一个评论,这是一个答案! –

回答

2

cabal文件中的任何列表必须以逗号分隔,而不是以空格分隔。关于.cabal文件are listed in the user guide *规则:

library 
    hs-source-dirs:  src 
    exposed-modules:  Lib 
    build-depends:  base >= 4.7 && < 5, 
         zeromq4-haskell 
    default-language: Haskell2010 

*滑稽得很,x list的定义缺失那里。

+0

像'exposed-modules'和'extra-source-files'这样的一些字段_can_至少可以以空格分隔。我不确定是否有任何字段_must_被空白分隔尽管... – sjakobi

+0

^cabal文件的复杂语法规则是为什么我在新项目中使用'hpack'的原因之一。使用'hpack',我可以用'yaml'语法来定义项目的元数据。 – sjakobi