“make clean”和“make clobber”有什么区别?

问题描述 投票:0回答:2

谁能告诉我“make clean”和“make clobber”之间的区别?我搜索过但没有找到有用的答案。

makefile
2个回答
5
投票

这两个术语都没有明确的含义。 Makefile 作者创建目标并为它们提供人类可读的名称; 传统上,

clean
表示从以前的构建中删除内容,而
clobber
表示强行覆盖以前的一些结果。后者不太常见或没有必要。

在每种情况下,对于每个 Makefile,您应该阅读任何随附的构建文档,或检查

Makefile
并了解它的作用,或者,也许作为最后的手段,询问作者。


0
投票

在 CPython 项目中,

make clean
删除中间结果,如
.o
文件,
make clobber
还删除最终结果,如
python
(或 Mac 上的
python.exe
)可执行文件本身,而
make distclean
尝试删除甚至
Makefile
(和其他构建基础设施)本身。后者之后,您需要重新运行
./configure

make clean
的目的是简单地强制重新编译。
make clobber
的目的还在于清理(占用空间的)构建产品。
make distclean
的目的是生成一个可以打包以便分发的源代码树。

在实践中,每一个都有些缺陷,如果您真正想要删除所有构建工件,那么您可能最好使用干净的 git 克隆。

Python自己的文档似乎不再推荐

make clobber
,只描述了
make clean
make distclean

© www.soinside.com 2019 - 2024. All rights reserved.