Makefile make:使用特定于模式的变量值定义多个变量

Makefile make:使用特定于模式的变量值定义多个变量,makefile,gnu-make,Makefile,Gnu Make,如何使用make的模式特定变量值功能定义多个变量?例如,假设已经定义了LIBDIR和RPATH,我想设置以下内容: LDFLAGS += -L$(LIBDIR) $(RPATH) LDLIBS += -lsomelibrary 对于与模式匹配的生成utest%。那么比如说, utest% : -L$(LIBDIR) $(RPATH) 这会让我半途而废,但是如何定义第二个变量呢 我想也许使用多行变量会奏效,但我不能完全做到这一点。我试过: define linking_vars := LDF

如何使用
make
的模式特定变量值功能定义多个变量?例如,假设已经定义了
LIBDIR
RPATH
,我想设置以下内容:

LDFLAGS += -L$(LIBDIR) $(RPATH)
LDLIBS += -lsomelibrary
对于与模式匹配的生成
utest%
。那么比如说,

utest% : -L$(LIBDIR) $(RPATH)
这会让我半途而废,但是如何定义第二个变量呢


我想也许使用多行变量会奏效,但我不能完全做到这一点。我试过:

define linking_vars :=
LDFLAGS := -L$(LIBDIR) $(RPATH)
LDLIBS := -lsomelibrary
endef

utest% : $(linking_vars)
而且

define newline = 

endef

utest_% : LDFLAGS := -L$(LIBDIR) $(RPATH) $(newline) LDLIBS := -lsomelibrary

但我还没有一点运气。

我不完全确定我是否理解你想要做什么,但听起来好像这样做可以做到:

utest% : LDFLAGS += -L$(LIBDIR) $(RPATH)
utest% : LDLIBS += -lsomelibrary

我不完全确定我是否理解您想要做的事情,但听起来好像这可以做到:

utest% : LDFLAGS += -L$(LIBDIR) $(RPATH)
utest% : LDLIBS += -lsomelibrary

是的,我让这件事变得比需要的困难多了!我阅读文档的方式是,我认为make会按照它们在makefile中出现的顺序读取相同茎长度的第一个匹配项,但实际上它会按照它们在makefile中出现的顺序读取相同茎长度的所有匹配项。谢谢你给我指示灯!是的,我让这件事变得比需要的困难多了!我阅读文档的方式是,我认为make会按照它们在makefile中出现的顺序读取相同茎长度的第一个匹配项,但实际上它会按照它们在makefile中出现的顺序读取相同茎长度的所有匹配项。谢谢你给我指示灯!