【问题标题】:makefile macro taking argumentsmakefile 宏带参数
【发布时间】:2011-06-08 18:30:54
【问题描述】:

我想做一些我自己的东西,比如shell 宏,你可以说$(shell command)

很遗憾,我没有在网上找到有关如何执行此操作的任何信息。

这可能吗?

【问题讨论】:

  • 请不要。特别是如果其他人将使用您的 makefile。
  • 您为什么要这样做? shell 命令已经存在。

标签: makefile gnu-make


【解决方案1】:

在 GNU make 中,您可以执行以下操作。想象一下,您想从一个没有扩展名的简单文件名生成.h.cpp 文件名,并将其添加为某个规则的来源。你可以写:

define h_and_cpp_sources
    $(1).h $(1).cpp
endef

这会生成一个 Makefile 宏,它的第一个参数为$(1),第二个参数为$(2),以此类推。那么:

target: $(call h_and_cpp_sources,file)
...

这将构建规则:

target: file.h file.cpp

【讨论】:

    【解决方案2】:

    您应该尝试使用call function 语法。

    这并不是你想要的,但 AFAIK 没有比这更复杂的了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多