Makefile:使用右侧的多个组件,由宏$ ^

时间:2016-04-05 13:03:48

标签: makefile

我有一个带有一行的makefile,它包含右侧的组件列表。我想使用宏$ ^来存档位于不同目录中的列表。以下行只使用其他目录中的第一个组件,其余部分在当前目录中处理错误:

libExApp.a: xapp_e.o xsage_e.o users.o id.o prog.o
    ar rc $@ ia32/$^

如果我使用花括号{},则在同一目录中处理的文件之间不存在逗号。

那么,我如何使用在同一目录中处理的多个组件。

1 个答案:

答案 0 :(得分:3)

不要这样做。做对了。告诉实际先决条件的位置,然后正常使用$^

libExApp.a: ia32/xapp_e.o ia32/xsage_e.o ia32/users.o ia32/id.o ia32/prog.o
        ar rc $@ $^

或者,为避免重复ia32前缀,您可以使用addprefix功能。

libExApp.a: $(addprefix ia32/,xapp_e.o xsage_e.o users.o id.o prog.o)
        ar rc $@ $^