日志
makefile中伪目标的理解
2017-10-20 16:00
1. 我们知道Makefile中的语法是这样:
target ... : prerequisites ... command … … 2. 假如编译两个文件可以这么写:
make a.o 或者 make b.o 或者 make clean 注意上面三个的区别。前两个都会生成目标,而第三个不会生成目标,仅仅希望执行所在规则(clean)定义的命令(rm)。 这个时候就需要伪目标出马了:目的不是为了生成目标,仅仅是希望执行其所在规则定义后面的命令。 3. 伪目标定义
4. 为什么要使用伪目标: 1)避免在我们的Makefile中定义的只执行命令的目标和工作目录下实际文件名字出现冲突。(比如,假如当前目录有一个clean文件,那么上面的 make clean 就不能达到我们的预期了) 2)提高执行效率,被声明为伪目标后,make在执行此规则时不会视图去查找隐含规则来创建这个目标。 |