Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1674219
  • 博文数量: 782
  • 博客积分: 2455
  • 博客等级: 大尉
  • 技术积分: 4140
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-06 21:37
个人简介

Linux ,c/c++, web,前端,php,js

文章分类

全部博文(782)

文章存档

2015年(8)

2014年(28)

2013年(110)

2012年(307)

2011年(329)

分类:

2011-12-23 09:07:07

  1. all: gliethttp

  2. gliethttp: src/a.o src/builtin.o src/bbbb dst/9999.o
  3.     @echo 0000000
  4. src/%.o: /home/luther/yayayayayayayapei force
  5.     @echo 1111111
  6. src/%.o: force
  7.     @echo 2222222
  8. src/%.o:
  9.     @echo 3333333
  10. dst/%.o:
  11.     @echo 4444444
  12. src/builtin.o:
  13.     @echo 5555555
  14. src/bbbb:
  15.     @echo 6666666

  16. force:

  17. .PHONY: force
执行make后你会看到如下输出:
2222222
5555555
6666666
4444444
0000000
我们来分析为什么会这样,
1. 首先你不能%.o前面必须有/路径分割, 否则make将认为是.o文件而直接是用默认规则cc -o来给你编译
2. 如果依赖文件src/builtin.o存在更加明确的目标和规则, 那么将选用这个规则创建目标, 否则
3. 只能使用含糊一些的静态模式%.o,
    3.1 如果静态模式%.o的依赖文件/home/luther/yayayayayayayapei不存在,
          同时又没有创建该依赖文件的方法那么该静态模式就不会被选用, 而会继续向下搜索另一个%.o,规则
    3.2 否则将是用%.o的规则
总之, 会是用%.o中匹配度最高, 同时最靠前的那个规则来生成目标

阅读(352) | 评论(0) | 转发(0) |
0

上一篇:tcpdump使用方法

下一篇:automake的简要使用

给主人留下些什么吧!~~