有没有办法告诉GHC将所有警告转储到文件中?

时间:2019-05-09 19:04:54

标签: haskell ghc

到目前为止,我已经尝试了以下方法:

me@pc:~/code$ ghc file.hs -Wall | tee warnings.log
me@pc:~/code$ ghc file.hs -Wall > warnings.log

但是ghc只会像正常情况一样显示警告,并且只会通过非警告步骤。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:7)

之所以仍然显示这些警告,是因为警告和错误打印在标准的 error 通道(stderr)上。

因此,您可以通过以下方式通过重定向stderr将错误重定向到文件:

ghc file.hs -Wall 2> warnings.log

请注意2中的2>。如前所述,警告例外都将打印到该通道。

我们可以使用以下方法将错误流重定向到tee中的bash

ghc -Wall file.hs 2> >(tee warnings.log)

此功能适用于bash,但据我所知,这不是POSIX标准中定义的。对于bash,此方法有效,但对于sh,此方法似乎失败。