韦东山视频第三期makefile文件分析

时间:2021-02-09 16:10:38

objs:=a.o b.o
test: (objs)gccotest ^
dep_files:= (foreachf, (objs),. (f).d)depfiles:= (wildcard $(dep_files))

ifneq ( (depfiles),)include (dep_files)
endif

%o:%c
gcc -Wp -MD, @.dco @ $<

clean:
rm *.o test

注意:
1. ifneq语句和其后面的括号之间必须有一个空格,不能直接连上,否则会报错:missing separator. stop
2. 依赖文件a.o.d和b.o.d都是以隐藏文件的形式保存的。故ls是看不见的,要通过ls -a 的方式才能看见。
3. 第一次make之后就会生出依赖文件,但是并没有将依赖文件添加进去。第二次make之后才会include 将依赖文件添加进去。