如果我按 Ctrl + C,我需要做 `make clean`

Do I need to do `make clean` if i press Ctrl + C

我正在编译一个非常大的代码库。如果我在 make 过程中按 Ctrl+C,在继续 make 过程之前是否需要 运行 make clean。如果主机 运行 内存不足而我不得不硬关机怎么办?我搜索了很多,但关于什么时候应该做的建议很少make clean,而且他们都不太清楚。

I have searched a lot but there are very few suggestions on when someone should do make clean and they are all kinda unclear.

没有任何通用的指导,因为 make clean 的效果取决于所涉及的 makefile。即使 'clean' 目标的存在也只是一种约定。

然而,一般来说,make clean 通常有两个主要目的:

  1. 删除内置文件以释放 space。
  2. 摆脱构建文件以克服 makefile 的缺点,这些缺点会阻止 make 识别何时需要重建某些目标。

如果您的 makefile 准确且完整地代表了您项目的所有构建依赖项,那么后者是不相关的,但是您的项目越大,就越难确信您的构建规则的完整性。

If I press Ctrl+C in the middle of make process, do I need to run make clean before continuing the make process. What if the host computer runs out of memory and I had to do hard shut down?

可能不会。风险在于构建被中断的方式会留下部分写入或以其他方式损坏的新目标。这不太可能,而且风险不会随着项目的规模而扩大。但是,如果您需要绝对确定 构建良好,那么最安全的做法是先清理,只有在构建完成时才接受构建。