【发布时间】:2021-02-17 05:59:23
【问题描述】:
我在 make 中使用特定于目标的变量值,它们没问题,但它没有应用于目标和先决条件,只是在配方中。这是 Makefile:
CXX := g++
TARGET := exec
BIN.PATH =
SOURCES := $(wildcard *.cpp)
OBJECTS.NAME := $(patsubst %.cpp, %.o, $(SOURCES))
OBJECTS.PATH = $(addprefix $(BIN.PATH)/, $(OBJECTS.NAME))
debug: BIN.PATH = debug
debug: $(TARGET)
$(TARGET): $(OBJECTS.PATH)
@echo $(BIN.PATH) # debug
@echo $(OBJECTS.PATH) # debug/main.o
@echo $^ # /main.o
# ...
$(BIN.PATH)/%.o: %.cpp
@echo $@ # /main.o
# ...
任何想法如何解决它?还是不可能?
【问题讨论】:
-
不清楚你在问什么。您希望
${OBJECTS.PATH)的值因目标而异? -
@tripleee 是的,这就是我想要的
-
请edit您的问题更详细地解释您希望在那里发生的事情。无论如何,这是一个相当常见的常见问题解答;你问之前有没有寻找解决方案?没有简单的方法可以使变量不具有您在 Makefile 顶部定义的值,但是有各种 hack 可能会或可能不会解决您的特定问题。