makefile中的归档目标成员名称是什么?

时间:2016-08-02 03:11:45

标签: makefile

makefile中存档中的目标成员名称是什么?

这里解释:https://www.gnu.org/software/make/manual/html_node/Archive-Members.html#Archive-Members 但我不太明白,因为没有一个简短的例子。

如果我有

target(name): name
       echo $%

$%是目标名称的自动变量。

如果我使用make target,则无法运行

为什么呢?什么是“目标成员名称”呢?

1 个答案:

答案 0 :(得分:1)

您链接的文档在开头附近具体说明了这一点。

  

此构造仅在目标和先决条件中可用,而不在食谱中可用!您可能在配方中使用的大多数程序不支持此语法,并且无法直接对存档成员执行操作。只有ar和专门设计用于存档的其他程序才能这样做。因此,更新归档成员目标的有效配方可能必须使用ar

例如,要创建一个名为ar的{​​{1}}存档,其中包含target,命令将为

name

作为touch name ar cr target name ,这是

Makefile

当您想要操作位于target: name ar cr $@ $^ name: touch name 内的target(name)副本时,name语法非常有用。例如,如果target在某个时间点重建,则name可能希望将其日期戳与Makefilename成员的日期戳进行比较,以确定是否您需要更新target内的副本。

target

但这并没有说明如何首先创建target(name): name ar cr $@ $% ;据我所知,你需要一个类似于我的例子顶部的食谱。