我参与了一个涉及大量C位和FFI的Haskell项目。所以我发现自己经常运行并重新运行像
这样的命令$ stack build
$ stack build --force-dirty
$ stack clean
$ rm ./.stack-work
一遍又一遍,以便将C位正确链接到Haskell位。换句话说,有时候只有在运行stack build
时才能正常工作,有时他们不会(在这种情况下,我不得不反复循环执行上述命令,直到我的项目正确构建)。 / p>
这意味着我没有正确理解stack
(通过ghc
)在组装Haskell位之前如何组装C位。所以这里有一个问题可以帮助我开始清理我的困惑:
运行stack clean
和删除.stack-work
目录的内容之间是否有任何值得注意的区别?是否需要删除.stack-work
目录作为确保您实际运行干净构建的良好预防措施?
答案 0 :(得分:0)
正如您在此处阅读消息来源所看到的那样:
https://github.com/commercialhaskell/stack/blob/master/src/Stack/Clean.hs
有两个级别,全部和浅部。我认为浅薄似乎是默认的。它似乎能够清理特定的软件包,或者如果你根本不提供任何选项,它将清除除本地软件包之外的所有内容。