【问题标题】:How to remove multiple source files after wildcard Makefile如何在通配符 Makefile 后删除多个源文件
【发布时间】:2016-04-15 20:53:36
【问题描述】:

问题是:

我有一个名为 A.mk 的生成文件(所有项目的通用生成文件)。在那里,我在文件夹 src1 中添加了所有源文件,使用 var += $(通配符 src1/*.c)

然后,对于一个特定的应用程序,我有一个 makefile(称为 B.mk),它本身就包含 A.mk。现在,我想用文件夹 src2 中的新文件 foo2.c 替换文件夹 src1 中的源文件 foo1.c。我该怎么做?

如果我想从 B.mk 中的 Var 替换(甚至删除)多个文件,我该怎么做。

提前感谢您的帮助。

【问题讨论】:

  • 你的新编辑听起来像是XY problem,为什么B.mk 需要更改A.mk 中定义的源?请编辑您的问题并澄清您要对这两个 makefile 做什么,它们是独立的项目还是 B 是子模块?

标签: makefile wildcard


【解决方案1】:

Make 有多个string functionsfilter-out 看起来在这里也适用

# All .c files
Var := $(filter-out %.c,$(Var))

# A specific file
Var := $(filter-out src/foo.c,$(Var))

【讨论】:

  • 它尝试了您的解决方案,但对我不起作用。也许我没有描述清楚。所以,我编辑了这个问题。
猜你喜欢
  • 1970-01-01
  • 2012-02-07
  • 1970-01-01
  • 2022-11-19
  • 1970-01-01
  • 2022-11-28
  • 2011-06-25
  • 1970-01-01
相关资源
最近更新 更多