Makefile生成自动依赖的方法有两种:
1. 将所有.o文件的依赖关系写入单独文件,然后在Makefile中调用该文件
2. 每个.c文件对应一个.d文件,将依赖关系写入.d文件中
一、对于第一种方法,Makefile的写法如下:
这种方法就是把所有的依赖关系写到一个文件.depend中,然后在Makefile中包含此产生的依赖关系。这种做法在GNU Make手册中被称为过时的,其主要缺点就是,.depend依赖于*.c文件,只有当.c文件有更改时候,才会重新生成.depend文件。如果修改某个头文件中的内容(比如添加 #include "xx.h"),可能需要新的.depend才能反映真实的依赖关系,但是上述这种做法
并不会重新生成.depend文件。所以不能正确显示依赖关系。
二、为每个文件生成对应的依赖关系文件
其最终目的就是把main.o : main.c main.h 转化为 main.o main.d:main.c main.h,这样当任何关联的源文件被修改后,都会重新生成相应的.d文件,这样可以及时的将新的依赖关系反映到Makefile中