Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 基本Makefile和头依赖项_C_Header_Makefile - Fatal编程技术网

C 基本Makefile和头依赖项

C 基本Makefile和头依赖项,c,header,makefile,C,Header,Makefile,我对makefile还不熟悉,有点卡住了。我有两个名为trade.c和report.c的c源文件。它们都依赖于一个名为acc.h的文件。acc.h文件由另外两个头文件组成,即users.h和resolders.h。我想知道如何将两个头文件的依赖关系写入acc.h文件。我到目前为止 OBJECTS = trade.c report.c CC = gcc trading: $(OBJECTS) $(CC) $(OBJECTS) -o trading trade.o: trade.

我对makefile还不熟悉,有点卡住了。我有两个名为trade.c和report.c的c源文件。它们都依赖于一个名为acc.h的文件。acc.h文件由另外两个头文件组成,即users.h和resolders.h。我想知道如何将两个头文件的依赖关系写入acc.h文件。我到目前为止

OBJECTS = trade.c report.c
CC = gcc

trading: $(OBJECTS)
        $(CC) $(OBJECTS) -o trading

trade.o: trade.c accts.h
        $(CC) -c trade.c

report.o: report.c accts.h
        $(CC) -c report.c

非常感谢您的帮助

除了在对象文件的依赖项列表中添加所有头文件之外,您别无选择,如下所示

trade.o: trade.c accts.h users.h resellers.h
        $(CC) -c trade.c

除了在对象文件的依赖项列表中添加所有头文件之外,您别无选择,如下所示

trade.o: trade.c accts.h users.h resellers.h
        $(CC) -c trade.c

在我所见过的makefiles的所有专业设置中,依赖项都不是手动添加的——涉及工具的特殊情况除外,如
lex
yacc
——而是使用编译器的选项(如gcc的-MM)自动创建的,或者在我所见过的所有专业设置中,通过使用各种独立工具,如
makedepend
mkdep
,这些依赖项不是手动添加的,除非是涉及
lex
yacc
等工具的特殊情况,而是自动创建的,可以使用编译器的选项(如gcc的-MM),也可以使用各种独立工具,如
makedepend
mkdep

当然可以,但这不是在专业环境中设置makefile的人;这是一个正在学习如何使用make的人。在你开始使用自动工具之前,要知道如何手动操作,这样你才能更好地理解为什么以及它们是如何工作的,并且可能会失败;这是一个正在学习如何使用make的人。在您开始使用自动工具之前,请先了解如何手动操作,以便更好地了解它们工作的原因和方式,以及它们可能失败的原因。