如何在vs代码中设置编译haskell的任务?

时间:2017-01-07 22:55:39

标签: haskell visual-studio-code

抱歉这个真正无知的问题,但我现在正在尝试vs代码,并希望配置一个正在编译我正在处理的文件的任务。我的文件夹结构和配置的任务如下所示:

enter image description here

问题是,这不会编译我的app.hs源文件,而是给我以下ghc错误:ghc: unrecognised flag: -o app app.hs。我已经直接从命令提示符测试了命令ghc -o app app.hs,它运行正常。所以我认为错误与代码将我在tasks.json中编写的内容发送到命令提示符的方式有关。我不知道该怎么办。有人有想法吗?

1 个答案:

答案 0 :(得分:3)

感谢@duplode并且稍微玩了一下我现在想出了以下任务设置(见下图):

enter image description here

对于回答我的问题,我定义的三个任务中的第一个是相关的。正如您所看到的,诀窍是将"args: ["-o app app.hs"]"更改为"args: ["-o", "app", "app.hs"]"。但请注意,-o app不相关,在这种情况下可以省略。 -o - 标志用于重命名ghc输出文件。如果省略此标志,ghc将根据输入文件名命名所有输出文件。所以在我的情况下,输入文件app.hs导致输出文件app.exe,app.o和app.hi.只有当您想要将输出文件命名为与输入文件不同时,才有意义使用-o - 标志。

至于我定义的其他两项任务:如果有人读过这篇文章并对此感兴趣,请发表评论或给我发消息。