目前的方式是这样的,看起来很笨拙......
ex1_test : ex1.o ex1_test.o
cc -o ex1_test ex1.o ex1_test.o
ex2_test : ex2.o ex2_test.o
cc -o ex2_test ex2.o ex2_test.o
ex3_test : ex3.o ex3_test.o
cc -o ex3_test ex3.o ex3_test.o
是否有可用于表示当前目标并减少重复的变量?
谢谢!
答案 0 :(得分:6)
步骤1,引入自动变量:
ex1_test : ex1.o ex1_test.o
cc -o $@ $^
ex2_test : ex2.o ex2_test.o
cc -o $@ $^
ex3_test : ex3.o ex3_test.o
cc -o $@ $^
步骤2,意识到这些规则看起来都一样,并用模式规则替换它们:
ex%_test: ex%.o ex%_test.o
cc -o $@ $^
答案 1 :(得分:2)
$ @和$ ^是你的朋友。 $ @是目标,$ ^是先决条件列表。
ex1_test : ex1.o ex1_test.o
cc -o $@ $^
automatic variables部分的GNU Make文档中有更多有用的make变量。