Makefile中的执行顺序
我创建了一个makefile,我想知道makefile执行命令的顺序。有什么方法可以让我知道吗Makefile中的执行顺序,makefile,Makefile,我创建了一个makefile,我想知道makefile执行命令的顺序。有什么方法可以让我知道吗 fao: main.o high.o low.o utils.o gcc -o foo main.o high.o low.a utils.o main.o: main.c high.h utils.h gcc -c -o main.o main.c high.h utils.h high.o: high.c law.h utils.h gcc -c -o high.o hig
fao: main.o high.o low.o utils.o
gcc -o foo main.o high.o low.a utils.o
main.o: main.c high.h utils.h
gcc -c -o main.o main.c high.h utils.h
high.o: high.c law.h utils.h
gcc -c -o high.o high.c low.h utils.h
low.o: law.c utils.h
gcc -c -o low.o low.c utlls.h
utils.o: utils.c utils.h
gcc -c -o utils.o utils.c utils.h
clean:
-rm -f fao main.o high.o low.o utils.o
*.c
文件和*.h
文件,但没有*.o
文件,那么makefile将按什么顺序执行命令utils.h
并再次执行make
,那么会发生什么?这次make程序将以什么顺序执行命令1你为什么在乎?Make将按照您的依赖关系进行排序 我不明白这个问题 3如果编辑utils.h,则依赖于utils.h的所有内容都将重新生成。然后所有依赖于重新制作的东西都会被重新制作。在你的情况下,几乎所有的东西都将被重新制作 请注意,您不应该在gcc命令行中包含.h文件。这是错误的(也为你修正-o) 应该是公正的
gcc -c -o main.o main.c
您还缺少gcc行开头的选项卡
如果您想了解make将做什么,请尝试
make-n
和make-d
参见1为什么您会在意?Make将按照您的依赖关系进行排序
我不明白这个问题
3如果编辑utils.h,则依赖于utils.h的所有内容都将重新生成。然后所有依赖于重新制作的东西都会被重新制作。在你的情况下,几乎所有的东西都将被重新制作
请注意,您不应该在gcc命令行中包含.h文件。这是错误的(也为你修正-o)
应该是公正的
gcc -c -o main.o main.c
您还缺少gcc行开头的选项卡
如果您想了解make将做什么,请尝试
make-n
和make-d
参见我怀疑您不是指-0
通常不在C编译器命令行上指定high.h
和utils.h
(用于main.o
等)的所有地方,但是您确实在依赖项行中列出了它们。我怀疑您不是指-0
所有您通常不在C编译器命令行上指定high.h
和utils.h
(对于main.o
)的地方,而是在依赖项行中列出了它们。谢谢您现在已经清楚了make-n和make-d!谢谢你,现在一切都清楚了,make-n和make-d!