我想生成一个.hi
接口文件,只有那个(没有目标文件,根本没有代码生成)。
我试过
ghc -fno-code -ohi out.hi myfile.hs
并得到
ghc: -ohi can only be used when compiling a single source file
我不明白,因为我只给出了一个源文件。
使用-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
是最新的,它也将避免不必要的编译。
2014 年左右,GHC 专门为此添加了一个选项。现在,您可以调用:
ghc -fno-code -fwrite-interface ...
在某些情况下,它实际上将编译速度提高了大约四分之一。