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

makefile中的归档目标成员名称是什么?,makefile,Makefile,makefile中存档中的目标成员名称是什么 这里解释如下: 但我不太明白,因为没有一个简单的例子 如果我有 target(name): name echo $% $%是目标名称的自动变量 如果使用make target,则此操作将不会运行 为什么??“目标成员名称”实际上是什么?您链接到的文档在开头附近专门解释了这一点 此构造仅在目标和先决条件中可用,在配方中不可用!您可能在recipes中使用的大多数程序都不支持此语法,并且无法直接作用于存档成员。只有ar和其他专门设计用于对

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

这里解释如下: 但我不太明白,因为没有一个简单的例子

如果我有

target(name): name
       echo $%
$%
是目标名称的自动变量

如果使用
make target
,则此操作将不会运行


为什么??“目标成员名称”实际上是什么?

您链接到的文档在开头附近专门解释了这一点

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

例如,要创建一个名为
target
ar
归档文件,其中包含
name
,命令如下

touch name
ar cr target name
作为一个
Makefile
,这是

target: name
    ar cr $@ $^

name:
    touch name
当您想要操作
target
中的
name
副本时,
target(name)
语法非常有用。例如,如果在某个时候重建了
name
,则您的
Makefile
可能希望将其日期戳与
target
name
成员的日期戳进行比较,以决定是否需要更新
target
中的副本

target(name): name
    ar cr $@ $%

但这并没有说明如何首先创建
target
;据我所知,您需要一个类似于我示例顶部的配方。

您知道这是在谈论
ar
文件,对吗?“如果我使用make-target,它将不会运行”没有规则来制作
target
,您还需要
target:target(name)
,虽然归档文件通常有一个
.a
后缀,所以可能
target.a:target.a(名称)
。有没有有效的示例?我真的需要一些有用的东西。你的问题不清楚你在找什么。什么东西目前不起作用?