如何针对已编译完成的Cabal包运行GHCi?
解决方法
- 运行
cabal repl时透传GHC目标码编译参数即可,命令如下:
默认cabal repl --ghc-options="-O -fobject-code"cabal repl采用字节码解释模式运行,会忽略之前编译的目标文件全量重编;传入上述参数后GHC会切换为和cabal build一致的目标码模式,优先读取已生成的.o目标文件和.hi接口文件,仅对修改、新增的源文件执行增量编译,完全复用已有编译产物。 - 如需长期默认启用该配置,可在项目根目录的
cabal.project文件中添加如下配置:
配置完成后直接执行repl-options ghc-options: -O -fobject-codecabal repl即可自动带入对应参数,无需每次手动输入。 - 如果仅需要加载包的指定组件(比如仅加载库代码、不加载测试套件/可执行文件),可以指定组件路径进一步提升加载效率,示例如下(替换为实际包名):
cabal repl lib:你的包名 --ghc-options="-O -fobject-code"
内容的提问来源于stack exchange,提问作者dfeuer
相关产品推荐
相关产品推荐

