【问题标题】:What does a comma mean in a makefile definition?makefile 定义中的逗号是什么意思?
【发布时间】:2019-02-15 19:39:53
【问题描述】:

这个 makefile 规则中的逗号是什么意思(变量定义?)?例如

target1,SRCS = foo.c bar.c
target2,SRCS = bat.c baz.c

它似乎定义了一个与特定目标相关联的变量 SRCS,但我不确定。显然,涉及的 make 定义更多,但它是一个复杂的 makefile 基础结构,我不知道从哪里开始理解更大的上下文。品牌是通用的; makefile 在 clearmake 和 GNU make 下都使用。

这在我们的 make 系统中所做的是使用给定的源文件构建 target1。实际上就像

SRCS = foo.c bar.c
target1: $(SRCS)

老实说,我觉得这是一个简单的问题,但我不记得在我多年的经验中遇到过这种语法,并且在搜索它时遇到了令人沮丧的时间。我尝试在 GNU make 手册中查找“,”,并对“逗号”这个词进行了全文搜索,还进行了一些网络搜索,但没有运气。

【问题讨论】:

  • 很可能在 makefile 的其他地方有一些代码类似于 $@,SRCS

标签: makefile


【解决方案1】:

这只是一个象征,但它是一个偷偷摸摸的象征。 GNU Make 允许逗号作为 Make 变量名称的一部分。

【讨论】:

  • 哦,这太邪恶了!
  • 事实上,在 make 变量名中不合法的字符非常非常少。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 2012-12-03
相关资源
最近更新 更多