gpt4 book ai didi

makefile - 这个 Makefile 语句中的两个百分号 % 符号是什么意思?

转载 作者:行者123 更新时间:2023-12-05 09:22:18 25 4
gpt4 key购买 nike

我在Makefile中遇到了这行代码。我一直在努力寻找解释但无法找到。如果您有线索,有人可以提示吗?特别是这个 Makefile 语句中的符号 %= 是什么意思。

ifndef VARA
VARB := $(CURDIR:/Dev/home/ajhome/%=/home/%)
export VARA:= $(VARB)
endif

提前多谢。

最佳答案

这不应该被理解为 %=%= 具有不同的功能。这是一个模式替换:

$(VARNAME:pattern1=pattern2)

%是模式中的占位符。这通常用于(例如)从源文件中获取目标文件的名称,例如

SRCS = foo.c bar.c
OBJS = $(SRCS:%.c=%.o)

# $(OBJS) is foo.o bar.o

在您的例子中,它将获取 $(CURDIR) 中的目录,并将其开头的 /Dev/home/ajhome/ 替换为 /home/。好吧,如果 $(CURDIR) 是一个目录列表,它将对每个目录都这样做,但是变量名称表明其中只有一个,所以我将继续这样做。

关于makefile - 这个 Makefile 语句中的两个百分号 % 符号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27932336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com