【发布时间】:2020-02-29 19:35:55
【问题描述】:
在 makefile 中,我尝试将目标名称与字符串进行比较,并根据此设置一个带有字符串或其他字符串的变量。 这个例子说明了我正在尝试做的事情:
ifeq ($@,"Target_A")
THE_PATH="Path_a"
THE_TARGET=$@
else
THE_PATH="Path_b"
THE_TARGET=$@
endif
Target_A:
@echo $(THE_PATH)
@echo $(THE_TARGET)
Target_B:
@echo $(THE_PATH)
@echo $(THE_TARGET)
这是我调用 make 传递 Target_A 和调用它传递 Target_B 时的输出:
$ make Target_A
Path_b
Target_A
$ make Target_B
Path_b
Target_B
我总是得到“Path_b”的事实表明 ifeq 总是评估为假,但你可以看到 $@ 包含正确的字符串。
为什么这不起作用?
【问题讨论】:
-
你对
make Target_A Target_B有什么要求?
标签: makefile