gpt4 book ai didi

makefile - 为什么 Makefile 中的 basename 不能按预期工作?

转载 作者:行者123 更新时间:2023-12-03 23:20:32 25 4
gpt4 key购买 nike

TESTS=test/hello.c
try:
@for t in $(TESTS); do echo $(basename $$t); done

运行“make”我得到
~ make
test/hello.c

这很奇怪,因为我希望得到基本名称“hello.c”。有什么解释吗?谢谢。

最佳答案

问题是你试图使用 Make 指令 basename shell 内for环形。 Make 将扩展 $(basename ...)首先声明(所以 $(basename $$t) 变成 $t ),然后传递命令

for t in test/hello.c; do echo $t; done

到 shell 。

这将给 test/hello :
@for t in $(basename $(TESTS)); do echo $$t; done

这将给 hello.c :
@for t in $(notdir $(TESTS)); do echo $$t; done

关于makefile - 为什么 Makefile 中的 basename 不能按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40203608/

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