Chinaunix首页 | 论坛 | 博客
  • 博客访问: 412410
  • 博文数量: 65
  • 博客积分: 1491
  • 博客等级: 上尉
  • 技术积分: 702
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-30 15:57
文章分类
文章存档

2011年(6)

2010年(12)

2009年(47)

我的朋友

分类: LINUX

2011-02-16 14:48:51


本文通过一个真实碰到的问题及其解决办法,引入并介绍“Makefile 重复目标”属性的使用:

(1).问题发生环境(Makefile原文片段):
    world: FileA
    @echo "test001..."
    world: FileB
    @echo "test002..."
    错误输出信息:
    Makefile:19: warning: overriding commands for target `world'
    Makefile:15: warning: ignoring old commands for target `world'
    test002...
(2).问题分析:
    对同一目标“XXX”存在一个以上的重建命令,GNU make规定:
    当同一个文件作为多个规则的目标时,只能有一个规则定义重建它的命令(双冒号规则除外)。如果为一个目标多次指定了相同或者不同的命令,就会产生第一个警;第二个警信息说新指定的命令覆盖了上一次指定的命令。
    因此,这个Makefile可以改写为
    world: FileA
    world: FileB
    world:
         @echo "test002..."
    等价于一个目标只出现一次的情况:
    world: FileA FileB
    @echo "test002..."

<--文章完-->
阅读(4010) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~