【发布时间】:2013-04-02 14:31:43
【问题描述】:
我目前正在从事一个学生工作项目并编写一些代码。每当我想编译我的文件时,我的主管告诉我先做gmake clean,然后再做gmake。否则,以前的 gmake 中的一些错误可能无法在新的 gmake 中解决。
我的项目有很多我没有编辑的不必要的文件,但由于我每次都gmake clean,编译器每次都会重新编译它们,这需要很多时间。
所以,如果我不更改其他文件,那么我不需要重新编译它们,并且我更改的唯一文件总是简单地使用 gmake 重新编译,对吗?那么为什么我每次都要gmake clean呢?
我的主管只是告诉我一个良好的编程习惯还是我错过了gmake clean 的一些重要概念?
【问题讨论】:
-
这是您的 makefile 实际包含的内容的问题。如果您没有正确设置依赖项,则会遇到问题。
-
依赖关系,你的意思是'#include'是我正在编辑的文件的任何其他文件?你能澄清一下吗?
-
我认为如果您发布一个简单的 makefile 示例来演示您实际尝试做的事情,您会得到更好的响应。它不一定要起作用(或者您不会问),只是为了让我们了解您的意图。
-
GNUMake 文件大约有 1100 行大。并包含我不明白的代码。但这就是它在 gmake 时所做的: [调试] 为 file1.cpp 生成依赖项 [调试] 为 file2.cpp 生成依赖项 ... ...(对于 20 个文件类似)...和 [调试] 编译 file1.cpp [调试] 编译file2.cpp ...等20个文件。如果您能告诉我依赖项到底是什么,那就太好了。谢谢。
-
基本上我只想知道我每次编译包所花费的 10 秒是否值得? gmake 需要 1 秒,而 gmake clean 之后的 gmake 需要 10 秒。如果相关,则在编译过程中不会创建新文件。而且我正在开发一个商业软件,我自己还没有创建这些依赖项等。