4

我想生成一个.hi接口文件,只有那个(没有目标文件,根本没有代码生成)。

我试过

ghc -fno-code -ohi out.hi myfile.hs

并得到

ghc: -ohi can only be used when compiling a single source file

我不明白,因为我只给出了一个源文件。

4

2 回答 2

2

使用-c选项,否则 ghc 想要链接,而不仅仅是编译:

ghc -fno-code -ohi out.hi -c myfile.hs

更新:但它并没有真正帮助,因为-fno-code阻止.hi创建。

ghc -o /dev/null -ohi out.hi -c myfile.hs

这个丢弃了编译的结果。但是,如果out.hi是最新的,它也将避免不必要的编译。

于 2013-01-13T18:55:58.657 回答
2

2014 年左右,GHC 专门为此添加了一个选项。现在,您可以调用:

ghc -fno-code -fwrite-interface ...

在某些情况下,它实际上将编译速度提高了大约四分之一。

于 2018-02-13T15:07:24.270 回答