繁体   English   中英

如何从 Haskell Stack build 编译可执行文件?

[英]How to compile an executable from Haskell Stack build?

|-aseCswk2
  |-app
    |-Main.hs
  |-src
    |-Libs.hs
  |-test
    |-Spec.hs
  |-aseCswk2.cabal
  |-Setup.hs
  |-package.yaml
...

所以我有一个 Haskell 项目,它使用 Stack 构建系统,并如上例所示。 如果我使用$ stack test ,那么我的 Libs.hs 文件中的函数将使用我的 Spec.hs 文件中的案例进行测试。 如果我使用$ stack build那么我的文件构建成功,我可以使用$ stack ghci中的函数。

但是,我想创建我的 Main.hs 文件的可执行文件,但不知道这怎么可能。 我尝试在应用程序目录中使用$ ghc Main.hs对其进行编译,但即使我已将其作为导入包含在内,也会出现错误提示“无法为 Lib 加载接口”。 我也尝试过$stack build aseCswk2:exe:aseCswk2-exe但没有创建.o文件来运行。

Haskell-stack 在隐藏的.stack-work目录中构建可执行文件。 您可以找出stack使用的二进制文件的位置:

$ stack path --local-install-root
/haskell/app/.stack-work/install/x86_64-linux/3fa5b3c3fbcd473981eef72c68d572129654cbb7c23af146b50d90e29c41b62f/8.6.5

在此目录中,如果您构建应用程序,则存在已构建的二进制文件所在的bin/目录。

您还可以使用以下命令运行应用程序:

$ stack run

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM