【问题标题】:Using % steam inside variables of your Makefiles prerequisites在 Makefile 先决条件的变量中使用 % steam
【发布时间】:2014-10-20 06:33:58
【问题描述】:

我经常发现自己不想在配方中引用词干,而是在先决条件本身中引用词干。

例如,我在这里使用了一些 python 代码,它以递归方式扫描可执行源代码的 .cpp 和 .hpp 文件,以检测它所依赖的对象。该脚本本身运行良好,但由于输入不同,我无法弄清楚如何将其与 makefile 连接。

$(TESTS): bin/tests/%_a : bin/obj/%.o $(foreach var, $(shell python3 ./autoInc.py ./src/lib/%.cpp), bin/obj/$(var).o)
    @echo "#---------------------------"
    @echo "# Linking $@ "
    $(CC) -o $@ $^

(这里的makefile执行./autoInc.py ./src/lib/%.cpp没有替换)

【问题讨论】:

    标签: makefile gnu-make


    【解决方案1】:

    这是表格:

    .SECONDEXPANSION:
    
    $(TESTS): %_a : $$(foreach var, $$(shell whatever $$*.cpp), $$(var).o)
        ...
    

    我建议你在尝试合并你的 python 之前,使用一个非常简单的玩具规则来让它工作。

    【讨论】:

      猜你喜欢
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 2014-05-05
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      相关资源
      最近更新 更多