首页 > 解决方案 > 将具有给定前缀的所有变量传递给编译命令

问题描述

在 GNU makefile 中,有没有办法获取具有给定前缀的所有变量,并将它们作为-D定义传递给编译命令?

例如,假设存在以下变量:

DEFINE_FOO=cat
DEFINE_BAR=dog

有没有办法-DFOO=cat -DBAR=dog从 make 中自动生成字符串,以便它自动获取以后添加的任何带有前缀的变量DEFINE_

标签: makefilegnu-make

解决方案


如果你使用 GNU make,你可以这样做:

CPPFLAGS += $(patsubst DEFINE_%,-D%,$(foreach V,\
                $(filter DEFINE_%,$(.VARIABLES)),$V=$($V)))

推荐阅读