Makefile中的执行顺序

时间:2018-04-20 23:44:39

标签: makefile

  1. 我创建了一个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
    
  2. 我试图了解makefile的行为。告诉我,如果我是对的。如果我有所有*.c个文件和*.h个文件但没有*.o个文件,那么makefile会以哪个顺序执行命令?

  3. 例如,如果我编辑utils.h并再次执行make,那么接下来会发生什么? make程序执行命令的顺序是什么顺序?

1 个答案:

答案 0 :(得分:2)

你为什么关心? Make将以遵循您的依赖关系的顺序生成

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 -nmake -d,请参阅https://linux.die.net/man/1/make