gpt4 book ai didi

makefile - 将目标名称传递给 makefile 中的依赖项

转载 作者:行者123 更新时间:2023-12-02 19:30:51 26 4
gpt4 key购买 nike

如果我在 makefile 中有以下规则:

$(OBJ)/%.o: $(SRC)/%.c
$(CC) -c -o $@ $< $(CFLAGS)

每个与前缀 ./obj/ 和后缀 .o 匹配的文件都会将其主干传递给 %,因此我可以提供一些基于其名称的依赖关系。

但是,假设我有这样的规则,我一一指定我想要的目标:

OBJECTS=abc.o bca.o cba.o
$(OBJECTS): $(SRC)/%.c
$(CC) -c -o $@ $< $(CFLAGS)

如何使 % 词干真正适用于当前正在执行的目标名称 make?仅使用 % 不起作用,$@ 也不起作用。

请注意,我正在尝试将实际目标名称写入其自己的依赖项。例如,当 make 执行 abc.o 的规则时,它将包含 $(SRC)/abc.c 以及它 (类似于 $(patsubst %.o, $(SRC)/%.c, MAGIC_TARGET_NAME_VARIABLE))。

最佳答案

您只需替换此规则即可:

$(OBJECTS): $(SRC)/%.c

与:

$(OBJECTS) : %.o : $(SRC)/%.c

如果您仍希望在那里构建它们,则需要将 $(OBJ) 添加到配方的 -o 部分:

$(OBJECTS) : %.o : $(SRC)/%.c
$(CC) -c -o $(OBJ)/$@ $< $(CFLAGS)

关于makefile - 将目标名称传递给 makefile 中的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14573869/

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