在Gabriel Gonzalez 的关于使用 nix 构建 haskell 项目的教程的项目 3中,他写道:
默认情况下,这些库使用 GHC 的
-fsplit-objs
标志编译以启用拆分目标文件,这会减小库大小但增加编译时间。这是我建议在开发期间使用 cabal 构建根项目的另一个原因,因为默认情况下,cabal 不会使用拆分对象进行编译,因此构建速度会更快。但是,-fsplit-objs
当 Nix 构建项目时,这是一个很好的默认设置,因此您无需更改此设置。
没有提到的是如何让 nix 在没有-fsplit-objs
. 就我而言,我有一个后端项目(使用 GHC 构建)、一个前端项目(使用 GHCJS 构建)和一个共享项目(两者都构建)。共享项目的重建有些常见,因此能够关闭-fsplit-objs
将节省大量编译时间。