C 如何将参数值包含到makefile中的字符串中

C 如何将参数值包含到makefile中的字符串中,c,makefile,optional-parameters,C,Makefile,Optional Parameters,我有一个makefile,并通过命令行向它传递一个参数。假设我传递时钟频率的参数,例如 make run FREQ=500 在我的makefile中,我想在字符串中包含FREQ的值,例如,我想像这样展开它 RUN_FLG = "--frequency = 500" 我知道如果您正常使用$(FREQ)(不是在字符串中),那么可以使用$(FREQ),但是如何在字符串中展开它呢?make不知道字符串是什么;将宏引用嵌入字符串与嵌入字符串外部相同: DEFAULT_FREQ = 60 FREQ

我有一个makefile,并通过命令行向它传递一个参数。假设我传递时钟频率的参数,例如

make run FREQ=500
在我的makefile中,我想在字符串中包含FREQ的值,例如,我想像这样展开它

RUN_FLG = "--frequency = 500"

我知道如果您正常使用$(FREQ)(不是在字符串中),那么可以使用$(FREQ),但是如何在字符串中展开它呢?

make
不知道字符串是什么;将宏引用嵌入字符串与嵌入字符串外部相同:

DEFAULT_FREQ = 60
FREQ         = $(DEFAULT_FREQ)

RUN_FLG = "--frequency=$(FREQ)"
我已经“纠正”了
--频率中的间距;通常情况下,
=
不会与选项文本分开,值后面也不会有空格

我在
makefile
中为FREQ提供了一个默认值,因此如果在没有任何
FREQ=500
覆盖的情况下调用它,您仍然可以将默认值作为
$(RUN\u FLG)

的一部分,只需使用
$(value)

例如:

freq = 500
x = "--frequency = $(freq)"

run:
    @$(/bin/echo -e) $(x)
make-n的输出:

"--frequency = 500"

你用同样的语法试过了吗?我不认为make知道引号括起来的字符串,因为所有东西都被视为一个字符串。Pubby-还没有尝试过,但我会尝试。