【问题标题】:Find the number of the job in parallel gnu-make在并行 gnu-make 中查找作业的编号
【发布时间】:2017-05-03 09:46:21
【问题描述】:

使用 -j 运行 make 时,是否可以找到正在运行的作业的编号?

例如使用像这样的 Makefile:

SUBDIRS = a b c

default: all

$(SUBDIRS)::
    $(MAKE) -C $@ $(MAKECMDGOALS)

all clean : $(SUBDIRS)

如果我运行make -j4,我可以回显每个作业不同的变量吗?

这个号码还有吗?

【问题讨论】:

    标签: gnu-make


    【解决方案1】:

    在这个 Makefile 上运行 $ make...

    .PHONY: all clean
    
    files := a b c
    
    all: $(files)
    
    $(files): clean
        @echo "Creating file: $@, Unique Job ID: $${$$}"
        @touch $@
    
    clean:
        @rm -f $(files)
    

    在这种情况下,您的唯一工作编号是 $${$$}。这是 Bash's $$ Process ID Internal Variable 的 Make 等价物,因为美元符号必须用美元符号转义。为了进一步说明,Bash 中的变量 $foo${foo} 在 Make 中分别为 $$foo$${foo}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-03
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多