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中出现的顺序读取相同茎长度的所有匹配项。谢谢你给我指示灯!