在Makefile中使用变量操作

问题描述:

我正在尝试使用目标文件名=文件夹名称创建Makefile。 而不是硬编码它,我使用的功能在Makefile中使用变量操作

FILE=$(PWD##*/) 

我也试过 FILE=$(echo PWD##*/)FILE=$(echo $(PWD##*/))。 但我收到一个错误:未终止的变量引用。 我知道在Makefile中做这样的变量操作是很困难的。有没有解决办法?

感谢

+0

要低于澄清安德鲁·吉利斯的回答,makefile文件不是shell脚本,并且在分配makefile变量时不能直接使用shell脚本语法。 '## * /'语法适用于_shell scripts_中的_shell_变量。它不会在makefile中使用make变量。 – MadScientist

这样

设置文件应该工作:

FILE = $(notdir $(PWD)) 

另一种方法是调出壳里做相同的:

FILE = $(shell basename \${PWD}) 
+0

它工作的第一次,但当我试图重新运行它:它说循环引用,依赖关系下降。 – Learner27

+0

通常意味着目标具有依赖关系,并且依赖关系具有对目标的依赖关系 – gammazero

+0

换言之,该错误与此问题无关,并且您没有显示可帮助诊断它的任何部分makefile。你应该尝试自己弄清楚,如果你不能,用make的错误消息中引用的行相关的行的更多细节打开一个新的问题。 – MadScientist