编译顺序和编译依赖项

时间:2015-08-08 17:58:13

标签: c gcc

假设我将一个C程序分成几个较小的文件,并按如下方式相互包含:

Taken from http://www.cs.cf.ac.uk/Dave/C/node3.html

现在我有以下问题,我在多大程度上是正确的。无论我错在哪里,请纠正我:

1. Which files have to recompiled after I make changes to process1.c?

main.c?

2. Which files have to recompiled after I make changes to process1.h?

main.c和process1.c?

3. Which files have to recompiled after I make changes to list.h? 

input.c和process2.c?

3 个答案:

答案 0 :(得分:3)

这很容易。如果 X 发生更改,则需要重新编译包含 X (或 X )的任何.c文件。答案是:

  1. process1.c
  2. process1.c,main.c
  3. process2.c,input.c

答案 1 :(得分:0)

我认为你问题的最佳答案是写一个function onoverbut(elemento) { elemento.style.color= "silver"; elemento.style.fontSize= "25px"; } ,然后在更改问题之后检查哪些文件是编译的。

答案 2 :(得分:0)

简单地说:

  

如果文件依赖于其中的任何文件已被更改,则必须重新编译该文件。

请注意,这是递归的,因此如果任何目标文件因为已经重新编译而发生了更改,则必须重新构建程序文件(通常依赖于所有目标文件)(即链接,而不是编译),太

您可以尝试使用SCons作为一种更好,更强大的替代品来制作。