Makefile学习记录(二)

本周使用Makefile自动进入多个子目录编译时出现,没有自动进入的问题:

使用指令如下


然后查找文档GNU.Make.项目管理.pdf一书,有示例:

将子目录变量用.PHONY声明一下,就可以正常执行;


文档里面解释是:


我的理解是suddir作为依赖文件,指向的是目录文件夹,其时间戳在建立后已改不会再刷新,所以make时发现其没有变动

就不会再次执行,所以不会进入子目录执行,而PHONY的功能这是表示,遇到PHONY设定后的,不管时间上是否比目标文件新

都执行。


解决该问题后,发现使用clean时也不会执行子目录的:

因为引用的suddir变量指向的文件夹都是相同的:

修改后:


改变subdir量名,在使用的时候恢复回来,如果clean_dir和subdir开始复制相同,执行时就会相互有干扰


猜你喜欢

转载自blog.csdn.net/kuang_tian_you/article/details/80784133