./PHONY

./PHONY 来显示的指名一个目标是伪目标,有两个作用一个是改善性能,另外一个是来避免冲突。

例如我写了这样一个Makefile

  1. test1:main.o file1.o file2.o file3.o 
  2. cc -o test1 main.o file1.o file2.o file3.o
  3. main.o:main.c 
  4.     cc -c main.c 
  5. file1.o :file1.c 
  6.     cc -c file1.c 
  7. file2.o :file2.c 
  8.     cc -c file2.c 
  9. file3.o :file3.c 
  10.     cc -c file3.c 
  11. .PHONY:test 
  12. test: 
  13.     rm main.o file1.o file2.o / 
  14. file3.o 

在makefile 所在的目录下,建立一个test的文件夹,此时你输入make test 可以成功的执行删除命令

如果你把.PHONY : test 这句给删除了那么当make test时就会提示
make: “test”是最新的。也就无法达到删除目的。所以为了避免和文件重名,我们可以使用.PHONY来指名该目标是个伪目标

如果编写一个规则,并不产生目标文件,则其命令在每次make 该目标时都执行。例如:
  clean:
  rm *.o temp
因为"rm"命令并不产生"clean"文件,则每次执行"make clean"的时候,该命令都会执行。如果目录中出现了"clean"文件,则规则失效了:没有依赖文件,文件"clean"始终是最新的,命令永远不会 执行;为避免这个问题,可使用".PHONY"指明该目标。如:
  .PHONY : clean
  这样执行"make clean"会无视"clean"文件存在与否。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值