Android-makefile 常用命令

eval函数在Shell中用于解析并执行字符串作为命令。它常与宏代码块和foreach循环结合,例如在变量赋值、条件判断和模块依赖处理中。文章提供的示例展示了如何使用eval定义变量、处理列表过滤和添加目标依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

eval函数

eval是shell的内建函数,这条命令的重点在于将所有参数用空格连接起来,然后重新解析并执行这条命令。

例如:

$(eval h_m := $(filter-out $(h_r), $(h_m)))

会解析执行 h_m := $(filter-out $(h_r), $(h_m)) 命令,相当于定义了一个变量并赋值。

通常和宏代码块和foreach循环函数配合使用,例如:

#$(foreach m, list, comment)
define add-all-target-to-target-required-modules-deps
$(foreach m,$(ALL_MODULES), \
  $(eval r := $(ALL_MODULES.$(m).REQUIRED)) \
  $(if $(r), \
    $(eval r := $(call module-installed-files,$(r))) \
    $(eval t_m := $(filter $(TARGET_OUT_ROOT)/%, $(ALL_MODULES.$(m).INSTALLED))) \
    $(eval t_r := $(filter $(TARGET_OUT_ROOT)/%, $(r))) \
    $(eval t_m := $(filter-out $(t_r), $(t_m))) \
    $(if $(t_m), $(eval $(call add-required-deps, $(t_m),$(t_r)))) \
  ) \
)
endef

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值