标签:完美 获取 makefile lin red 文件的 test pre 导致
编译单个源文件时,需要获取文件中包含的头文件的信息,但是一般的Makefile不会在规则中明确写明文件依赖的头文件,所以单独修改头文件后,不会导致包含头文件的源文件重新编译。如果每次手动的添加头文件依赖,又会非常的繁琐,所以需要一种自动生成依赖的方法。
#include <stdio.h> #include "test.h" int main() { return 0; }
test.o: test.c /usr/include/stdc-predef.h /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/stddef.h /usr/include/bits/types.h /usr/include/bits/typesizes.h /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/stdarg.h /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h test.h
test.o: test.c test.h
%.d: %.c @set -e; rm -f $@; $(CC) -MM $(CPPFLAGS) $< > $@.$$$$; sed ‘s,\($*\)\.o[ :]*,\1.o $@ : ,g‘ < $@.$$$$ > $@; rm -f $@.$$$$
提示:上述方法中隐含了,目标相同的多条规则会自动进行合并的机制,所以规则的目标一定要相同,才能使得原来的编译规则(%.c:%.o)中添加对头文件的依赖。
标签:完美 获取 makefile lin red 文件的 test pre 导致
原文地址:https://www.cnblogs.com/chusiyong/p/11385221.html