You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Makefile中获取当前函数/变量名?有无类似C中__FUNCTION__的内置变量?

Makefile中获取当前函数/变量名称的方法

Makefile本身没有内置的类似.VARIABLE这样的变量,无法直接获取当前被调用的变量宏(即通过call调用的变量)的名称,也不存在等价于C语言__FUNCTION__的内置特性。

针对你给出的示例代码:

my_variable=$(1) and $(.VARIABLE)

$(info $$(call my_variable,1) is "$(call my_variable,1)")

实际运行时,.VARIABLE不属于合法的内置变量,因此输出会是 $(call my_variable,1) is "1 and ",无法达到你预期的效果。

如果要实现类似需求,只能通过显式传递名称参数的方式模拟,比如修改代码为:

my_variable=$(2) and $(1)

$(info $$(call my_variable,my_variable,1) is "$(call my_variable,my_variable,1)")

运行后就能得到预期输出:$(call my_variable,my_variable,1) is "1 and my_variable"。

需要注意的是,Makefile的变量和call调用的变量宏本质是文本替换,不像编程语言的函数有运行时上下文可以自动获取自身标识,所以只能通过手动传参的方式实现类似功能。

内容的提问来源于stack exchange,提问作者Maarten ten Velden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 16:17:03