在Makefile中使用变量操作
我正在尝试使用目标文件名=文件夹名称创建Makefile。 而不是硬编码它,我使用的功能在Makefile中使用变量操作
FILE=$(PWD##*/)
我也试过 FILE=$(echo PWD##*/)
和FILE=$(echo $(PWD##*/))
。 但我收到一个错误:未终止的变量引用。 我知道在Makefile中做这样的变量操作是很困难的。有没有解决办法?
感谢
设置文件应该工作:
FILE = $(notdir $(PWD))
另一种方法是调出壳里做相同的:
FILE = $(shell basename \${PWD})
它工作的第一次,但当我试图重新运行它:它说循环引用,依赖关系下降。 – Learner27
通常意味着目标具有依赖关系,并且依赖关系具有对目标的依赖关系 – gammazero
换言之,该错误与此问题无关,并且您没有显示可帮助诊断它的任何部分makefile。你应该尝试自己弄清楚,如果你不能,用make的错误消息中引用的行相关的行的更多细节打开一个新的问题。 – MadScientist
要低于澄清安德鲁·吉利斯的回答,makefile文件不是shell脚本,并且在分配makefile变量时不能直接使用shell脚本语法。 '## * /'语法适用于_shell scripts_中的_shell_变量。它不会在makefile中使用make变量。 – MadScientist