在多个 Makefile 中包含 Makefile 和 Echo 变量

Posted

技术标签:

【中文标题】在多个 Makefile 中包含 Makefile 和 Echo 变量【英文标题】:Include Makefile and Echo Variables Inside Multiple Makefiles 【发布时间】:2018-08-08 22:05:38 【问题描述】:

在我最近必须查看的 Makefile 中,它包含此 include $(MAKERULES)

现在对我来说,我想在 makefile 顶部的某个地方它有 MAKERULES = xyz 但它没有。所以我打印出 MAKERULES

test:

    @echo "Rules: $(MAKERULES)"

然后我做测试。它运行并打印出另一个 Makefile 位置,Makefile2。

X/Y/Z/Makefile2 路径。我进入这个 Makefile 并尝试写出一些 echo 语句,以便我可以看到正在打印的内容,但没有打印出来。

是否可以从我的本地 Makefile (Makefile) 引用的另一个 Makefile (Makefile2) 中打印出变量?

【问题讨论】:

您的问题不清楚。您要打印哪些变量? 我会定义的,一会儿,我道歉 您要打印哪些变量? Makefile2 中定义的所有变量,还是仅仅几个特定变量? 只是一些具体的。但是,我想如果我能把它们都打印出来,那也很好。不知道该怎么做 【参考方案1】:

是的,这是可能的。您没有向我们展示您显示这些变量的尝试,因此我们无法告诉您为什么它不起作用。 (嗯,不能。)

我会这样做:

$(info the variable FOO contains $(FOO))

如果您想对多个变量执行此操作:

$(foreach X, FOO BAR BAZ, $(info $(X) is $($(X))))

所有当前定义的全局变量的列表是.VARIABLES,所以你可以用“$(.VARIABLES)”代替“FOO BAR BAZ”来打印所有的变量。

【讨论】:

有趣,明天试试这个,你。

以上是关于在多个 Makefile 中包含 Makefile 和 Echo 变量的主要内容,如果未能解决你的问题,请参考以下文章

2.Makefile文件中包含哪些规则?

如何在 Makefile 中定义多个包含路径

在 C 或 C++ 中包含标头的正确方法

为啥Makefile找不到包含目录

linux-2.6.22.6内核启动分析之Makefile文件

makefile--回顾基础篇