为什么“Makefile”需要依赖?

为什么“Makefile”需要依赖?

我想知道为什么“Makefile”需要依赖行,尽管命令行已经有文件列表。例如,

你好:main.o 你好.o

        gcc -o main.o hello.o

gcc 命令已包含 main.o、hello.o。编写依赖行看起来效率很低。

答案1

是的,但不必要的是构建规则,而不是依赖关系。make毕竟,依赖关系才是起作用的。构建规则也是严重错误的(将覆盖main.o而不是构建hello)。

使用隐式规则,这可以缩短为

hello: main.o hello.o

或者,如果除了依赖项之外您还想要一个显式的 make 规则:

hello: main.o hello.o
    $(CC) -o $@ $<

相关内容