构建生成的可执行文件将依赖很多源文件和头文件,一旦依赖项更新,就需要重新编译,在Makefile中配置依赖关系,make就能知道哪些部分需要重新编译。
考虑下面的例子,Makefile中配置:
hello: main.o factorial.o hello.o
$(CC) main.o factorial.o hello.o -o hello
hello
依赖main.o factorial.o hello.o
文件。因此,一旦所依赖的文件有任何更改,make都将重新构建hello
。
同样的,.o
文件也是有依赖项的。Makefile需要告诉make怎么生成.o
文件,如下所示:
main.o: main.cpp functions.h
$(CC) -c main.cpp
factorial.o: factorial.cpp functions.h
$(CC) -c factorial.cpp
hello.o: hello.cpp functions.h
$(CC) -c hello.cpp