我想知道为什么“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 $@ $<