无论如何要减少GNU make中的重复先决条件模式?

Han*_*Sun 1 c c++ makefile gnu-make

目前的方式是这样的,看起来很笨拙..

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
Run Code Online (Sandbox Code Playgroud)

是否有可用于表示当前目标并减少重复的变量?

谢谢!

Bet*_*eta 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 $@ $^
Run Code Online (Sandbox Code Playgroud)

第2步,意识到这些规则看起来都一样,并用模式规则替换它们:

ex%_test: ex%.o ex%_test.o
    cc -o $@ $^
Run Code Online (Sandbox Code Playgroud)