C 编译顺序和编译依赖关系
假设我有一个C程序,它被分成几个较小的文件,并包含彼此,如下所示: 现在我有以下疑问,我在多大程度上是正确的。无论我错在哪里,请纠正我:C 编译顺序和编译依赖关系,c,gcc,C,Gcc,假设我有一个C程序,它被分成几个较小的文件,并包含彼此,如下所示: 现在我有以下疑问,我在多大程度上是正确的。无论我错在哪里,请纠正我: 1. Which files have to recompiled after I make changes to process1.c? 梅因c 2. Which files have to recompiled after I make changes to process1.h? main.c和process1.c 3. Which files h
1. Which files have to recompiled after I make changes to process1.c?
梅因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?我认为对你的问题最好的回答是写一个
Makefile
,然后在像你的问题一样修改文件后检查编译了哪些文件。这真的很容易。如果X被更改,任何包含X(或是X)的.c文件都需要重新编译。答案是:
您可以尝试将其作为一个更简单、更强大的好的ol'make的替代方案。也许您可以添加一个示例,说明如何执行此操作,从而计算依赖项。不,这是一个非常基本的问题,在尝试创建Makefile之前,您应该了解。你需要先了解如何回答这个问题,然后才能知道你的Makefile是否运行正常。我同意你的观点,这是我理解的一个基本问题。也许对于一个很难理解的人来说,最好编写一个Makefile,以了解更改后文件是如何编译的。关键是Makefile不会突然为您计算依赖项。文件
output.c
无法为代码的其余部分提供任何有用的服务,因为没有声明它提供给您的函数的头其他文件。所以,问题描述中有一个bug。output.c
应该包括process1.h
,或者应该有一个output.h
头,该头包含在output.c
和一个或多个其他源文件中。