使用Cabal构建Haskell项目时如何抑制多余的模块详情输出
Cabal 编译抑制冗余路径输出解决方案
方案1:使用Cabal原生精简输出配置(适用于Cabal 3.4及以上版本)
这是最推荐的方案,Cabal官方已经内置了对应输出格式选项:
- 单次编译临时生效:执行命令时添加参数
该配置下的编译输出格式和Stack一致,只会保留模块编译进度与模块名称,不会打印源文件、目标文件路径。cabal build --output-format=short - 全局永久生效:编辑用户目录下的Cabal配置文件
~/.cabal/config,添加如下配置行:
保存后后续所有output-format: shortcabal build命令默认都会使用精简输出格式。
方案2:旧版本Cabal兼容方案
如果你使用的Cabal版本低于3.4,不支持output-format参数,可以通过管道命令过滤掉冗余路径信息:
cabal build | sed 's/ (.*)//'
该命令会自动删除每行编译输出里括号及括号内的所有路径内容,最终输出效果和Stack完全一致。
内容的提问来源于stack exchange,提问作者user2667523
相关产品推荐
相关产品推荐

