问题是,这不会编译我的app.hs源文件,而是给我以下ghc错误:ghc: unrecognised flag: -o app app.hs
。我已经直接从命令提示符测试了命令ghc -o app app.hs
,它运行正常。所以我认为错误与代码将我在tasks.json中编写的内容发送到命令提示符的方式有关。我不知道该怎么办。有人有想法吗?
答案 0 :(得分:3)
感谢@duplode并且稍微玩了一下我现在想出了以下任务设置(见下图):
对于回答我的问题,我定义的三个任务中的第一个是相关的。正如您所看到的,诀窍是将"args: ["-o app app.hs"]"
更改为"args: ["-o", "app", "app.hs"]"
。但请注意,-o app
不相关,在这种情况下可以省略。 -o
- 标志用于重命名ghc输出文件。如果省略此标志,ghc将根据输入文件名命名所有输出文件。所以在我的情况下,输入文件app.hs导致输出文件app.exe,app.o和app.hi.只有当您想要将输出文件命名为与输入文件不同时,才有意义使用-o
- 标志。
至于我定义的其他两项任务:如果有人读过这篇文章并对此感兴趣,请发表评论或给我发消息。