小编kba*_*ber的帖子

制作:在配方中重新分配变量

我有一个关于Makefile中变量范围的问题.

我有几个目标,所有目标都执行相同的命令,但命令的某些参数需要根据目标进行更改.

为了尝试消除冗余,我试图重构这些目标,以便每个目标只是设置一些变量,然后稍后调用一个使用这些变量的通用目标.

例如,

target1:
    COMMAND="../bin/release/prog1 input"
    TITLE=PROG1
    OUTFILE=PROG1.pdf
    make targetN
target2:
    COMMAND="../bin/release/prog2 input"
    TITLE=PROG2
    OUTFILE=PROG2.pdf
    make targetN
..
..
targetN:
    $(COMMAND) | grep RESULTS > results.csv
    gnuplot -e "TITLE=$(TITLE)" prog.plot
    ...
    ..
Run Code Online (Sandbox Code Playgroud)

这里target1和target2设置它们的"特定于目标"的变量,然后调用targetN.目的是targetN然后使用这些变量并使用它们运行常规命令.

问题:targetN没有看到在target1和/或target2中设置的这些变量的值.任何人都可以对此有所了解吗?我试图搜索有关目标范围的信息,但没有找到任何有用的信息.也许这个问题与范围无关,而且是一个完全不同的问题.

关于如何完成我想用这个方案实现的任何建议?

谢谢!

makefile gnu-make

2
推荐指数
1
解决办法
559
查看次数

标签 统计

gnu-make ×1

makefile ×1