3

我有一个configure编写 Makefile 的脚本(来自Makefile.in)。clean目标当前会删除从 makefile 中创建的所有内容,但不会删除 makefile 本身。(你可能知道我没有使用 Autotools)

因此,我的问题是:makefile 是否也应该自行删除,要求开发人员./configure再次运行?

一方面,我希望干净的目标正确地清理源树。但是,另一方面,我希望能够make clean test在提交之前输入以检查一切是否正常工作;再次运行配置脚本似乎有点奇怪。

4

3 回答 3

8

这是一个风格问题,而不是技术问题。寻找答案的最佳去处是automake 手册,它会告诉你:

`make clean'
     Erase from the build tree the files built by `make all'.

`make distclean'
     Additionally erase anything `./configure' created.

所以,不,make clean不应该删除Makefile. make distclean应该 delete Makefile,因为它是由configurenot创建的make all

关于 autotools 最好的事情之一是它们是一致的和标准的。最好不要因无视这些标准而激怒您的用户。

于 2013-08-01T19:36:59.033 回答
2

我可能有一个单独的目标。所以clean会让他们能够再次构建,但distcleanrealcleanallclean或某些东西会强制重新配置。您可以看到哪些 autotools 清洁目标(如果有)具有类似的行为。

于 2013-08-01T19:34:22.610 回答
1

clean 目标的目的通常是删除临时文件,因此您可以从头开始编译。在这里查看更多

例如,一个常见的 makefile 目标是“clean”,它通常执行在编译器之后进行清理的操作——删除目标文件和生成的可执行文件。

于 2013-08-01T19:37:10.297 回答