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

sch*_*ine 3 haskell ghc

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

me@pc:~/code$ ghc file.hs -Wall | tee warnings.log
me@pc:~/code$ ghc file.hs -Wall > warnings.log
Run Code Online (Sandbox Code Playgroud)

但是ghc只像正常情况那样打印警告,并且仅通过非警告步骤。

有没有办法做到这一点?

Wil*_*sem 7

它仍然显示这些警告的原因是,警告和错误打印在标准错误通道(stderr)上。

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

ghc file.hs -Wall 2> warnings.log
Run Code Online (Sandbox Code Playgroud)

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

我们可以将错误流重定向到teebash与:

ghc -Wall file.hs 2> >(tee warnings.log)
Run Code Online (Sandbox Code Playgroud)

此功能适用于bash,但据我所知,这在POSIX标准中未定义。对于bash这项工作,但是对于sh,这似乎失败了。