【问题标题】:Sub-make does not expand target specific variablessub-make 不扩展目标特定变量
【发布时间】:2016-10-17 17:09:41
【问题描述】:

给出以下示例makefile:

export MY_COMMENT  := 'Hello world'

t1: MY_COMMENT += 'very much!'
t1:
    @echo $(MY_COMMENT)

t2: MY_COMMENT += 'and I love you all'
t2:
    @$(MAKE) -e --no-print-directory t1

如果在命令行中输入make t2,预期的输出是:

Hello world and I love you all very much!

相反,我得到:

Hello world and I love you all

为了将t1 的目标特定变量也导出或附加到变量MY_COMMENT,我缺少什么?


我也意识到我可以让t2 依赖于t1,这将解决这个直接问题,但是在回答时,假设我不能让t2 依赖于t1,我需要再次调用make

【问题讨论】:

    标签: makefile


    【解决方案1】:

    解决方案是为每个目标特定变量使用override。所以我最终得到了:

    export MY_COMMENT  := 'Hello world'
    
    t1: override MY_COMMENT += 'very much!'
    t1:
        @echo $(MY_COMMENT)
    
    t2: override MY_COMMENT += 'and I love you all'
    t2:
        @$(MAKE) -e --no-print-directory t1
    

    这现在给出了正确的输出

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-11
      相关资源
      最近更新 更多