Build 如何从Makefile中的名称列表创建多个可执行文件或库
我想从名称列表中构建一组可执行文件或库。它们都以相同的方式构建,基本上需要两个在逻辑上连接的文件:Build 如何从Makefile中的名称列表创建多个可执行文件或库,build,makefile,Build,Makefile,我想从名称列表中构建一组可执行文件或库。它们都以相同的方式构建,基本上需要两个在逻辑上连接的文件: X.exe : X.o X_y.o $(CC) -o $@ $^ 在我的makefile中,我只想列出我所有的X:s并自动生成所有的.exe。所以从 Xs : a b c 我希望Makefile像编写规则一样执行 a.exe : a.o a_y.o b.exe : b.o b_y.o c.exe : c.o c_y.o 当然,这是为了简化添加另一个X 我的基本问题似乎是上面Xs的定义
X.exe : X.o X_y.o
$(CC) -o $@ $^
在我的makefile中,我只想列出我所有的X:s并自动生成所有的.exe。所以从
Xs : a b c
我希望Makefile像编写规则一样执行
a.exe : a.o a_y.o
b.exe : b.o b_y.o
c.exe : c.o c_y.o
当然,这是为了简化添加另一个X
我的基本问题似乎是上面Xs的定义是一组名称,我需要将其分解为单独的规则。我了解模式,并尝试使用foreach文本函数,但失败了
这可以做到吗?看来模式规则是一条可行之路:
Xs=a b c
default: $(patsubst %,%.exe,$(Xs))
%.exe : %.o %_y.o
$(CC) -o $@ $^
模式规则的先决条件可以多次使用%
请注意,您不需要使用
foreach
。只需告诉make
您想要构建的所有目标。看起来模式规则是一种方法:
Xs=a b c
default: $(patsubst %,%.exe,$(Xs))
%.exe : %.o %_y.o
$(CC) -o $@ $^
模式规则的先决条件可以多次使用%
请注意,您不需要使用foreach
。只需告诉make
您想要构建的所有目标