Haskell Stack构建特定可执行文件

8
如何构建特定堆栈可执行文件,也就是在 projectname.cabal 中指定的那些,例如:
executable executable-name
  hs-source-dirs:      tools
  main-is:             ExecutableModule.hs
  ghc-options:         -Wall -threaded -rtsopts -with-rtsopts=-N
  build-depends:       base
                     , hsass
                     , hlibsass

我需要编译可执行文件executable-name,而不是其他文件。大概是这个意思:
stack build --executable executable-name
1个回答

8

Stack 使用基于组件的查找,例如:

stack build packagename:component-type:component-name

如果你的包名叫做 "foo",可执行文件名叫做 "bar",那么你可以使用以下命令:

stack build foo:exe:bar

然而,如果组件名是唯一的,你可以省略包名和组件类型。因此,如果你的可执行文件名为 "exectuable-name",那么它就是
stack build :executable-name

1
这种能力似乎从2015年11月开始失效,一直持续到现在。(参考 commercialhaskell/stack/issues/1406 - Yosh
组件化查找的精确语法也在这里记录:https://docs.haskellstack.org/en/stable/build_command/#target-syntax - manews

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接