Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15331477
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类: Python/Ruby

2011-12-15 18:41:58

  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中匹配度最高, 同时最靠前的那个规则来生成目标

阅读(5115) | 评论(2) | 转发(3) |
给主人留下些什么吧!~~

1471893852011-12-29 09:27:19

归根结底还是最优问题啊!

-小Y头-2011-12-20 05:08:27

用%.o中匹配度最高, 同时最靠前的那个规则来生成目标