如何使用cabal / stack添加新的可执行文件?

时间:2016-02-11 09:57:46

标签: haskell build cabal

我想在我的项目中添加一个新的可执行文件。但它无法在MyProject.cabal处解析build-depends。当我从MyProject中删除build-depends时,它表示无法找到目标TestExample

我尝试加载TestExample,如下所示:stack ghci TestExample

name:                  MyProject
cabal-version:         >=1.10


library
  hs-source-dirs:      src
  exposed-modules:     MyProject
                     , MyProject.Other
  build-depends:       base
                     , text


executable TestExample
  hs-source-dirs:      examples
  main-is:             TestExample.hs
  build-depends:       base
                     , MyProject
                     , MyProject.Other

1 个答案:

答案 0 :(得分:2)

在cabal文件中build-depends是一个包列表,而不是模块。

  build-depends:       base
                     , MyProject
                     , MyProject.Other

此处base是一个包,MyProject是您的库包的名称(请参阅cabal文件中的name字段),但MyProject.Other不是包。实际上,包名称中的点是not allowed

  

Cabal包名称可以使用字母,数字和连字符,但不能   空格。

这就是cabal无法解析文件的原因。只需从, MyProject.Other中移除build-depends行即可。

要将源加载到解释器中,请使用stack ghci