0

Makefileに次のルールがあるとします。

foo: foo1.c foo2.c head1.h head2.h
    gcc -o $@ foo1.c foo2.c

ご覧のとおり、この場合(ほとんどの場合と同様)、ルール内の.cファイルは、gccに渡す.cファイルに対応しています。私の質問は、「ルール内のすべての.cファイル」と評価されるMakefileに渡すことができる変数はありますか?

個人的に、私は以下を使用します:

CFILES=$(filter %.c,$^)                                                        

foo: foo1.c foo2.c head1.h head2.h
    gcc -o $@ $(CFILES)

しかし、これが正しい方法かどうかはわかりません...

4

1 に答える 1

0

あなたのフィルターは問題ないと思いますが、ファイルとファイルのリストを別々に定義し、.c必要.hに応じてそれらのリストを使用したいと思います。

CFILES=foo1.c foo2.c
HFILES=head1.h head2.h

foo: $(CFILES) $(HFILES)
        gcc -o $@ $(CFILES)

そもそも混ざらなければ後から分ける必要はありません.c.h

于 2013-02-09T11:12:40.197 に答える