makefile中重载与取消隐藏规则示例
学习《跟我一起写Makefile-陈皓》后一直不懂,如何重载或取消隐藏规则
为了博客版面整洁,何为隐藏规则,Makefile基本规则编写等基础支持请自行百度。
需要声明的是:这些知识可能在大牛们看来很浅显,百度找到的博客基本都是复制《跟我一起写Makefile-陈皓》的,正因为在此文件上没解释清楚,我这等渣渣一直搞不懂
==========================================================================
重载隐藏规则:显式写出规则,目标+依赖目标与隐藏规则相同,且有命令,则为重载隐藏规则
eg.有隐藏规则:%.o:%.c
在makefile中显式地写明:
%.o:%.c #目标+依赖与隐藏规则同
echo "test" #且有命令
取消隐藏规则:显式写出规则,且无命令,利用显式规则会取缔隐藏规则,使得隐藏规则无效
eg.有隐藏规则:%.o:%.c
在makefile中显式地写明:
%.o:%.c #目标+依赖与隐藏规则同,但后续无命令
需要注意的是,由于make会尽可能达成目标,因此你取消了某条隐藏规则,但是make从另外一个方向完成了目标
例如:
取消隐藏规则:
%.o:%.c #后面无命令
make通过另外的隐藏规则的组合也实现了编译:
1、%.o:%.c
2、%:%.o