makefile中存档中的目标成员名称是什么?
这里解释:https://www.gnu.org/software/make/manual/html_node/Archive-Members.html#Archive-Members 但我不太明白,因为没有一个简短的例子。
如果我有
target(name): name
echo $%
$%
是目标名称的自动变量。
如果我使用make target
,则无法运行
为什么呢?什么是“目标成员名称”呢?
答案 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
可能希望将其日期戳与Makefile
中name
成员的日期戳进行比较,以确定是否您需要更新target
内的副本。
target
但这并没有说明如何首先创建target(name): name
ar cr $@ $%
;据我所知,你需要一个类似于我的例子顶部的食谱。