You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免Asterius的ahc-link命令污染源码目录?

--output-directory 参数仅控制ahc-link最终生成的JS、WASM及运行时相关文件的输出路径,不会修改底层GHC编译Haskell源码时生成的.hi接口文件、.o目标文件的默认存放规则——这两类中间文件默认会输出到对应源文件的同级目录,就是你遇到的源码目录污染问题。

要把这类中间文件也统一放到构建目录下,只需要通过--ghc-option参数把GHC原生的-outputdir配置透传给底层编译器,指定中间文件的存放路径即可。

正确命令示例

ahc-link --output-directory _build --ghc-option=-outputdir --ghc-option=_build/intermediate src/main.hs

执行上述命令后,所有.hi、.o中间文件都会按照源码的目录结构,统一存放到_build/intermediate目录下,不会再出现在源码目录中。

补充说明

  • 增量编译场景下保持该参数不变,GHC可以正常识别已生成的中间文件,不会触发不必要的全量重编译
  • 中间文件目录可以和--output-directory指定的最终产物目录相同,不会产生冲突,注意清理构建目录时不要误删需要保留的文件即可
  • 如果是通过Cabal、Stack这类构建工具集成Asterius,工具会自动配置中间文件输出路径,不需要手动添加该参数

内容的提问来源于stack exchange,提问作者Cactus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 09:39:43