C++ GNU make中是否有减少重复先决条件模式的方法?

C++ GNU make中是否有减少重复先决条件模式的方法?,c++,c,makefile,gnu-make,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 是否有一个变量可以用来表示当前目标并减少重复 谢谢 $@和$^是你的朋友。$@是

目前的做法是这样的,看起来很笨拙

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
是否有一个变量可以用来表示当前目标并减少重复


谢谢

$@和$^是你的朋友。$@是目标,$^是先决条件列表

ex1_test : ex1.o ex1_test.o
    cc -o $@ $^

本节的GNU make文档中有更多有用的make变量。

$@和$^是您的朋友。$@是目标,$^是先决条件列表

ex1_test : ex1.o ex1_test.o
    cc -o $@ $^

本节GNU make文档中有更多有用的make变量。

步骤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,引入自动变量:

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 $@ $^