【问题标题】:Using Variable Manipulations in Makefile在 Makefile 中使用变量操作
【发布时间】:2017-10-12 23:37:50
【问题描述】:

我正在尝试创建一个目标文件名 = 文件夹名的 Makefile。 我没有硬编码,而是使用了函数

FILE=$(PWD##*/)

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

谢谢

【问题讨论】:

  • 为了澄清 Andrew Gillis 下面的回答,makefile 不是 shell 脚本,在分配 makefile 变量时不能直接使用 shell 脚本语法。 ##*/ 语法适用于 shell 脚本 内的 shell 变量。它不适用于 makefile 中的 make 变量。

标签: linux bash makefile compiler-errors compilation


【解决方案1】:

这样设置 FILE 应该可以:

FILE = $(notdir $(PWD))

另一种方法是调用 shell 来做同样的事情:

FILE = $(shell basename $${PWD})

【讨论】:

  • 它第一次工作但是当我尝试重新运行它时:它说循环引用,依赖下降。
  • 一般表示一个target有一个依赖,这个依赖对target有依赖
  • 换句话说,该错误与此问题无关,并且您没有显示任何有助于诊断它的 makefile 部分。您应该尝试自己弄清楚,如果无法解决,请打开一个新问题,其中包含与 make 错误消息中引用的行相关的 makefile 的更多详细信息。
  • 另外,上面的引用是错误的:你应该使用$${PWD} 而不是\${PWD}
猜你喜欢
  • 2012-11-26
  • 1970-01-01
  • 2015-06-12
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-09
  • 2021-11-20
相关资源
最近更新 更多