我有一个带有一行的makefile,它包含右侧的组件列表。我想使用宏$ ^来存档位于不同目录中的列表。以下行只使用其他目录中的第一个组件,其余部分在当前目录中处理错误:
libExApp.a: xapp_e.o xsage_e.o users.o id.o prog.o
ar rc $@ ia32/$^
如果我使用花括号{},则在同一目录中处理的文件之间不存在逗号。
那么,我如何使用在同一目录中处理的多个组件。
答案 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 $@ $^