1

現在の方法はこのようなもので、かなり不器用に見えます..

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

現在のターゲットを表し、重複を減らすために使用できる変数はありますか?

ありがとう!

4

2 に答える 2

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 $@ $^
于 2012-10-06T04:54:36.677 に答える
2

$@ と $^ はあなたの友達です。$@ はターゲット、$^ は前提条件のリストです。

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

自動変数セクションの GNU Make ドキュメントには、より便利な make 変数があります。

于 2012-10-06T04:45:18.627 に答える