我创建了一个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 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
我试图了解makefile的行为。告诉我,如果我是对的。如果我有所有*.c
个文件和*.h
个文件但没有*.o
个文件,那么makefile会以哪个顺序执行命令?
例如,如果我编辑utils.h
并再次执行make
,那么接下来会发生什么? make程序执行命令的顺序是什么顺序?
答案 0 :(得分:2)
2不明白问题
3如果您编辑utils.h将重新生成依赖于utils.h的所有内容。然后,所有依赖于重制的东西的东西都将被重新制作。在你的情况下,几乎所有东西都将被重新制作。
请注意,不应在gcc命令行中包含.h文件。即这是错误的(并为你修好-o)
gcc -c -0 main.o main.c high.h utils.h
应该只是
gcc -c -o main.o main.c
您还缺少gcc行开头的标签
如果您想查看哪些内容可以尝试make -n
和make -d
,请参阅https://linux.die.net/man/1/make